Description
Related dev. issue(s): tarantool/tarantool#5295
Part of the Errors epic
Product: Tarantool
Since: 2.11
Audience/target:
Root document:
- https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_error/error_object/
- https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_info/ro_reason/#box-info-ro-reason
SME: @ sergepetrenko
When box.info.ro_reason is "synchro" and some operation throws an
ER_READONLY error, this error now might include the following reason:
Can't modify data on a read-only instance - synchro queue with term 2
belongs to 1 (06c05d18-456e-4db3-ac4c-b8d0f291fd92) and is frozen due to
fencing
This means that the current instance is indeed the synchro queue owner,
but it has noticed, that someone else in the cluster might start new
elections or might overtake the synchro queue soon.
This may be also detected by box.info.election.term
becoming greater than
box.info.synchro.queue.term
(this is the case for the second error
message).
There is also a slightly different error message:
Can't modify data on a read-only instance - synchro queue with term 2
belongs to 1 (06c05d18-456e-4db3-ac4c-b8d0f291fd92) and is frozen until
promotion
This means that the node simply cannot guarantee that it is still the
synchro queue owner (for example, after a restart, when a node still thinks
it is the queue owner, but someone else in the cluster has already
overtaken the queue).
Requested by @sergepetrenko in tarantool/tarantool@6cc1b1f