Mike Percy has submitted this change and it was merged. Change subject: KUDU-1933. consensus: Avoid and repair integer overflow in log index ......................................................................
KUDU-1933. consensus: Avoid and repair integer overflow in log index We observed a crash on a long-running master server that looked like the following: F0308 00:25:53.568773 7655 log_index.cc:171] Check failed: log_index > 0 (-2147483648 vs. 0) It turns out that this was caused due to integer overflow on the log index field. This patch fixes this type of truncation in a couple of places (LogReader and MakeOpId()) and adds a couple of new tests that fail without both of those fixes. This patch also adds "repair" logic in log replay during tablet bootstrap that "reverts" integer overflow when it is detected while rewriting the log entry. Finally, this patch includes some test helper fixes to avoid log index integer truncation in future tests. Change-Id: I284edbde51dc50fb2f98acc83cdcc3891d37863f Reviewed-on: http://gerrit.cloudera.org:8080/6376 Tested-by: Kudu Jenkins Reviewed-by: David Ribeiro Alves <[email protected]> --- M src/kudu/consensus/consensus-test-util.h M src/kudu/consensus/log-test-base.h M src/kudu/consensus/log-test.cc M src/kudu/consensus/log_cache-test.cc M src/kudu/consensus/log_reader.cc M src/kudu/consensus/log_reader.h M src/kudu/consensus/opid_util.cc M src/kudu/consensus/opid_util.h M src/kudu/integration-tests/ts_recovery-itest.cc M src/kudu/tablet/tablet_bootstrap-test.cc M src/kudu/tablet/tablet_bootstrap.cc 11 files changed, 236 insertions(+), 27 deletions(-) Approvals: David Ribeiro Alves: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/6376 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I284edbde51dc50fb2f98acc83cdcc3891d37863f Gerrit-PatchSet: 10 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike Percy <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: David Ribeiro Alves <[email protected]> Gerrit-Reviewer: Jean-Daniel Cryans <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <[email protected]> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]>
