fix: race condition in on_shutdown
Tarantool remote requests are handled in a IProto thread, and on_shutdown triggers are handled in the TX thread.
During shutdown we send a request to the leader, which introduces a race condition in case we are the leader. If iproto thread shuts down before the request is sent, it will never be handled.
The fix is simple: in case we are the leader during shutdown, don't send the request, instead handle the request directly in the TX thread.
The bug could be reproduced by adding a ::tarantool::fiber::sleep(std::time::Duration::from_secs(1))
in the beginning of the on_shutdown handler.
Closes #120 (closed)
Edited by Georgy Moshkin