Andrew Wong has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/8605 )
Change subject: tablet: mark delta tracker read-only on error ...................................................................... tablet: mark delta tracker read-only on error When DeltaTracker::Flush() fails, it leaves a DeltaMemStore in the redo store list. This is fine for reads because the readpath expects any DeltaStore to be in that slot, but this is a problem for updates, which expect only DeltaFileReaders in the list while the compact_flush_lock_ is held. Before, we would get around this by CHECKing so Flush() could never return in such a state. This patch introduces a flag to the DeltaTracker that indicates whether it has experienced such an error. In order to ensure type-correctness, this flag must be checked immediately upon entering the critical section of the compact_flush_lock_. Change-Id: Ib950048e9cd0929a10714ab1cc2bd829835afced Reviewed-on: http://gerrit.cloudera.org:8080/8605 Tested-by: Kudu Jenkins Reviewed-by: Mike Percy <[email protected]> --- M src/kudu/tablet/delta_tracker.cc M src/kudu/tablet/delta_tracker.h M src/kudu/tablet/diskrowset.cc 3 files changed, 36 insertions(+), 5 deletions(-) Approvals: Kudu Jenkins: Verified Mike Percy: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/8605 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib950048e9cd0929a10714ab1cc2bd829835afced Gerrit-Change-Number: 8605 Gerrit-PatchSet: 11 Gerrit-Owner: Andrew Wong <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <[email protected]> Gerrit-Reviewer: Todd Lipcon <[email protected]>
