Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/10777 )
Change subject: KUDU-2260: Log block manager should handle null bytes in metadata on crash ...................................................................... Patch Set 3: (6 comments) http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/fs/log_block_manager-test.cc File src/kudu/fs/log_block_manager-test.cc: http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/fs/log_block_manager-test.cc@631 PS3, Line 631: // a data length and its checksum, and the third is long for a record. The Nit: too long http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/fs/log_block_manager.h File src/kudu/fs/log_block_manager.h: http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/fs/log_block_manager.h@216 PS3, Line 216: FRIEND_TEST(LogBlockManagerTest, TestExtraNullBytes); Doesn't exist? http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/pb_util-test.cc File src/kudu/util/pb_util-test.cc: http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/pb_util-test.cc@387 PS3, Line 387: if (version_ == 1) { : ASSERT_TRUE(s.IsCorruption()) << s.ToString(); : } else { : ASSERT_TRUE(s.IsIncomplete()) << s.ToString(); : } Nit: unify with a ternary? ASSERT_TRUE(version_ == 1 ? s.IsCorruption() : s.IsIncomplete()) << s.ToString(); http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/pb_util.cc File src/kudu/util/pb_util.cc: http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/pb_util.cc@256 PS3, Line 256: namespace { Isn't this section already in an anonymous namespace? http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/pb_util.cc@317 PS3, Line 317: // This can happen e.g. on ext4 in the default data=ordered mode, when the : // filesize metadata is updated but the new data is not persisted. Maybe expand this a bit and/or link to the tytso thread? http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/slice.h File src/kudu/util/slice.h: http://gerrit.cloudera.org:8080/#/c/10777/3/src/kudu/util/slice.h@26 PS3, Line 26: #include "kudu/gutil/port.h" Bear in mind that slice.h is part of the public API, which doesn't include port.h. That's why client_examples-test.sh is failing. You'll need to find an alternate way of handling this. Perhaps adding ATTRIBUTE_NO_SANITIZE_THREAD to stubs.h and conditionally including it? We have some examples of that in various client headers. -- To view, visit http://gerrit.cloudera.org:8080/10777 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0af5c9dbbe28afe7a179595ad20392b99cde2a1b Gerrit-Change-Number: 10777 Gerrit-PatchSet: 3 Gerrit-Owner: Will Berkeley <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]> Gerrit-Reviewer: Will Berkeley <[email protected]> Gerrit-Comment-Date: Thu, 21 Jun 2018 18:00:51 +0000 Gerrit-HasComments: Yes
