Description
Right now we un-anchor MRS/DMS when they get destructed, because the LogAnchorer member gets destructed. However, we forgot that the MRS/DMS can live for a while after it has been flushed - eg if there is an open scanner pointing to the memory store.
tablet_peer-test's TabletPeerTest.TestActiveTransactionPreventsLogGC occasionally fails (<1%) due to this because there is some reference the log appender thread which is holding onto the MRS slightly after the transaction has committed, so the anchorer isn't getting immediately removed upon flush. But if there were scanners open, it would be potentially much longer.
To fix, we should add some explicit method in the MRS/DMS which says "you've been persisted, you can un-anchor yourself".
Attachments
Issue Links
- is related to
-
KUDU-716 Single-disk tpch_real_world with SF=500 should complete successfully
- Resolved