Closed DifferentialOrange closed 5 years ago
/queue/abstract/driver/fifottl.lua
fifottl_fiber_iteration
function throws error on
task = self.space.index.watch:min(delayed_state)
with following
main/112/fifottl I> ....rocks/share/tarantool/queue/abstract/driver/fifottl.lua:102: attempt to index field 'watch' (a nil value)
On fifottl_fiber
cycle
while true do
if not box.cfg.read_only then
local stat, err = pcall(fifottl_fiber_iteration, self, processed)
if not stat and not err.code == box.error.READONLY then
log.error("error catched: %s", tostring(err))
log.error("exiting fiber '%s'", fiber.name())
return 1
elseif stat then
processed = err
end
else
fiber.sleep(0.1)
end
end
after pcall
script do not satisfy if
and elseif
condition, goes again on pcall
and do not yield.
Tarantool Enterprise 1.10.3-89-g412e943, queue 1.0.3
Bug can be reproduced by the following script
After ~
ttr
seconds of sleep tarantool instance start to use ~100% of CPU, became unavailable for connection by net.box and can't be stopped by Ctrl-C.