vinyl: abort checkpoint on dump error
- Propagate dump/compact errors from workers to vy_scheduler->diag via vy_task->diag and log errors from the scheduler. - Abort vy_wait_checkpoint() from the scheduler if it fails to schedule a task or a task completes with error. - Throttle the scheduler whenever it encounters an error, so as not to burn CPU by rescheduling the same faulty task over and over again. The timeout grows exponentially with each successive failure, min 1 second, max 60 seconds. - Abort vy_checkpoint() if the scheduler is throttled. - Rename ERRINJ_VY_RANGE_CREATE to ERRINJ_VY_RANGE_DUMP and abort any dump if it is set in order to make vinyl/errinj test predictable (we don't know when a range is actually created - it may happen before box.snapshot() - so the latter isn't bound to fail if ERRINJ_VY_RANGE_CREATE is set). Closes #1857
Showing
- src/box/vinyl.c 112 additions, 34 deletionssrc/box/vinyl.c
- src/box/vinyl.h 1 addition, 1 deletionsrc/box/vinyl.h
- src/box/vinyl_engine.cc 1 addition, 2 deletionssrc/box/vinyl_engine.cc
- src/errinj.h 1 addition, 1 deletionsrc/errinj.h
- test/box/errinj.result 2 additions, 2 deletionstest/box/errinj.result
- test/vinyl/errinj.result 15 additions, 3 deletionstest/vinyl/errinj.result
- test/vinyl/errinj.test.lua 7 additions, 2 deletionstest/vinyl/errinj.test.lua
- test/vinyl/recover.result 1 addition, 1 deletiontest/vinyl/recover.result
- test/vinyl/recover.test.lua 1 addition, 1 deletiontest/vinyl/recover.test.lua
Loading
Please register or sign in to comment