[Tarantool-patches] [PATCH v4 2/3] cfg: support symbolic evaluation of replication_synchro_quorum

Cyrill Gorcunov gorcunov at gmail.com
Mon Dec 21 23:02:26 MSK 2020


On Mon, Dec 21, 2020 at 06:48:04PM +0100, Vladislav Shpilevoy wrote:
> > +
> > +	if (lua_isnumber(tarantool_L, -1))
> > +		quorum = (int)lua_tonumber(tarantool_L, -1);
> 
> 1. There is a small issue:
> 
> tarantool> box.cfg{replication_synchro_quorum='4294967297'}
> 2020-12-21 18:33:16.015 [47366] main/103/interactive I> set 'replication_synchro_quorum' configuration option to "4294967297"

Actually nope. When we pass this value it is treated
as a plain number and cfg_geti trims it :(

Here is a master branch output

 | tarantool> box.cfg{replication_synchro_quorum=4294967297}
 | ...
 | 2020-12-21 22:59:00.614 [176552] main/103/interactive I> set 'replication_synchro_quorum' configuration option to 4294967297

Note that on master branch I have to pass real numebr not string,
but issue is the same...

Need to think how to deal with it.

> > +		int value = MAX(1, replicaset.registered_count);
> > +		quorum = box_eval_replication_synchro_quorum(value);
> > +		if (quorum <= 0 || quorum >= VCLOCK_MAX)
> > +			panic("failed to eval replication_synchro_quorum");
> 
> 2. This check better be below. Because the numeric value also was
> validated, right?

True, will update.


More information about the Tarantool-patches mailing list