Bug #40555
closedDisabling journal might result in assertion failure
0%
Description
In the dynamic features test, a crash was observed in the QEMU process while attempting to disable the journal.
The process of disabling the journal will flush out all IO events. However, if there was an in-flight external flush request, it's op tracking might only start after the IO work queue considers IO to be blocked (AioCompletion::start_op is only invoked after all preceeding IO has flushed). Therefore, the ImageRequestWQ::block_writes call invoked from the DisableFeatureRequest state machine will proceed even though a flush is still in-flight. When this flush completes and attempts to commit its journal entry, it will fail an assertion since ImageCtx::journal is NULL.
This 'flush' op tracking issue has been fixed in the master branch via a refactor in commit 09e4127d5d, so a smaller change should be implemented in backport branches directly.
Updated by Jason Dillaman almost 5 years ago
- Status changed from New to Pending Backport
Updated by Jason Dillaman almost 5 years ago
- Copied to Backport #40572: nautilus: Disabling journal might result in assertion failure added
Updated by Jason Dillaman almost 5 years ago
- Copied to Backport #40573: mimic: Disabling journal might result in assertion failure added
Updated by Jason Dillaman almost 5 years ago
- Copied to Backport #40574: luminous: Disabling journal might result in assertion failure added
Updated by Nathan Cutler almost 5 years ago
- Status changed from Pending Backport to Resolved