iproto: don't hang on uncancellable iproto request
Currently if there is uncancellable iproto request Tarantool shutdown will hang. Let's instead give it some time and then panic. On this way it is good to make iproto_drop_connections() fail on timeout. It is used in `box.ctl.iproto_lockdown` which is better to fail on timeout than to hang indefinitely too. In Tarantool CI which is run with TEST_BUILD set, we set the timeout to the infinity. This is on par with current fiber_shutdown() behaviour. We will not change the latter for a while because there is already several tests that count on that. Also it is currently easier to test that there is no hang than to test exit status. Part of #8423 NO_CHANGELOG=internal NO_DOC=internal
Showing
- src/box/box.cc 21 additions, 1 deletionsrc/box/box.cc
- src/box/iproto.cc 71 additions, 16 deletionssrc/box/iproto.cc
- src/box/iproto.h 18 additions, 4 deletionssrc/box/iproto.h
- src/box/lua/ctl.c 2 additions, 1 deletionsrc/box/lua/ctl.c
- test/box-luatest/shutdown_test.lua 47 additions, 0 deletionstest/box-luatest/shutdown_test.lua
Loading
Please register or sign in to comment