[kudu-CR] [python] added KuduPartialRow::SetNoCopy{Binary,String}()
Jordan Birdsell has posted comments on this change. Change subject: [python] added KuduPartialRow::SetNoCopy{Binary,String}() .. Patch Set 2: I do agree with clarifying the comments either way though -- To view, visit http://gerrit.cloudera.org:8080/5114 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: If73894c3037f1158cf7b9d3aafecd228a0204bbd Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Jordan Birdsell Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] [python] added KuduPartialRow::SetNoCopy{Binary,String}()
Jordan Birdsell has posted comments on this change. Change subject: [python] added KuduPartialRow::SetNoCopy{Binary,String}() .. Patch Set 2: Ah, i see, so in that case are you thinking we should use the nocopy routine to continue as was done before? If so you'll want to also update the PartialRow stuff, otherwise this code does nothing. -- To view, visit http://gerrit.cloudera.org:8080/5114 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: If73894c3037f1158cf7b9d3aafecd228a0204bbd Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Jordan Birdsell Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1634 (part 2). Fixed bug which fails to ignore tmp consensus log segments
Maxim Smyatkin has posted comments on this change. Change subject: KUDU-1634 (part 2). Fixed bug which fails to ignore tmp consensus log segments .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/5122/1/src/kudu/consensus/log_util.cc File src/kudu/consensus/log_util.cc: Line 810: if (fname.find(kTmpInfix) != fname.npos) { > If I'm understanding the code in Log::CreatePlaceholderSegment() correctly, Hm, you're right, the .tmp.newsegmentXX files won't pass the previous check. But whether there may be any different tmp files or not, I'm not sure. Maybe the whole check is really unnecessary. Will check it later. -- To view, visit http://gerrit.cloudera.org:8080/5122 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9cf25fbe6ecfc28aed9443cdfb6fb56100394c73 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Maxim SmyatkinGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Maxim Smyatkin Gerrit-HasComments: Yes
[kudu-CR] [Timestamp] use 'operator<' instead of ComesBefore
Hello Dinesh Bhat, Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5096 to look at the new patch set (#5). Change subject: [Timestamp] use 'operator<' instead of ComesBefore .. [Timestamp] use 'operator<' instead of ComesBefore Added more syntactic sugar, now for the kudu::Timestamp class: use operator{<, <=, >, <=, ==} instead of Timestamp::ComesBefore() and Timestamp::CompareTo(), where possible. Besides, this patch contains a minor clean-up on the of header files and forward declarations. This patch does not contain any functional changes. Change-Id: I4a5b0f90e92f6de40822cfe872b417cf0c53121a --- M src/kudu/common/timestamp.cc M src/kudu/common/timestamp.h M src/kudu/server/hybrid_clock.cc M src/kudu/tablet/compaction.h M src/kudu/tablet/delta_stats.cc M src/kudu/tablet/mvcc-test.cc M src/kudu/tablet/mvcc.cc M src/kudu/tablet/mvcc.h M src/kudu/tserver/tablet_service.cc 9 files changed, 75 insertions(+), 54 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/96/5096/5 -- To view, visit http://gerrit.cloudera.org:8080/5096 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4a5b0f90e92f6de40822cfe872b417cf0c53121a Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Dinesh Bhat Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1679 Propagate timestamps for scans
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5099 to look at the new patch set (#6). Change subject: KUDU-1679 Propagate timestamps for scans .. KUDU-1679 Propagate timestamps for scans Added the 'propagated_timestamp' field into the ScanResponsePB message. It's always set by the tablet server which processed the incoming NewScanRequestPB message successfully. Also, added a unit test to verify the presence of the field in tablet server response messages. Change-Id: I4d79024b088ea88fd194cabcb61e640f66326264 --- M src/kudu/client/client-test.cc M src/kudu/client/scan_configuration.cc M src/kudu/client/scan_configuration.h M src/kudu/client/scan_token-internal.cc M src/kudu/client/scanner-internal.cc M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tserver.proto 8 files changed, 203 insertions(+), 56 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/99/5099/6 -- To view, visit http://gerrit.cloudera.org:8080/5099 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4d79024b088ea88fd194cabcb61e640f66326264 Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Todd Lipcon has submitted this change and it was merged. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. KUDU-1749. Allow callers to disable SASL initialization The Kudu client makes use of SASL, as do other applications such as Impala that use the client. This means that both Kudu and those applications are expected to initialize SASL. The sasl_*_init() functions themselves are safe to call multiple times (they have no effect). However, sasl_set_mutex() is not safe to call multiple times, nor is it safe to call after another library has already begun using the SASL libraries. IMPALA-4479 describes a crash in SaslMutexUnlock() which is likely caused by this issue: Impala has initialized the SASL library with no call to sasl_set_mutex(), and then during Kudu initialization we set the mutex functions to our own. Then when we call sasl_dispose(), SASL tries to acquire an internal mutex which was previously allocated to a garbage value 0x1 by the built-in "fake" mutex implementation. This crashes when we attempt to access it using our real mutex implementation. The fix has a few parts: - we have a new API which allows embedders to disable initialization of SASL. - we try to auto-detect the case in which the client has fully initialized SASL including providing a mutex implementation. In that case, we skip initialization but log a warning that the caller should disable it explicitly. - if we detect that it's initialized but no mutex implementation is provided, we'll log a warning on first usage of SASL. - if they disable initialization but didn't initialize SASL on their own, we'll return an error on first usage. The one sketchy thing about this patch is that the SASL API doesn't give a 100% public way to determine its initialization state. However, it does export a symbol which we can import that provides the necessary information. This symbol is marked as an API, so we expect it to be stable enough for usage, at least across the range of supported operating systems. Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Reviewed-on: http://gerrit.cloudera.org:8080/5120 Reviewed-by: Adar DemboTested-by: Kudu Jenkins Reviewed-by: Alexey Serbin --- M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/rpc/sasl_common.cc M src/kudu/rpc/sasl_common.h M src/kudu/rpc/sasl_rpc-test.cc 5 files changed, 212 insertions(+), 10 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Alexey Serbin: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 7 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [integration tests] added scan consistency test
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5084 to look at the new patch set (#3). Change subject: [integration tests] added scan consistency test .. [integration tests] added scan consistency test This is a small test to expose inconsistent reads when no timestamp is propagated by the client to tablet servers. This is in the context of KUDU-1679 Propagate timestamps for scans. Change-Id: I88e0d4e244be8abcef18e0b8317bacfa9bf272cb --- M src/kudu/client/client-test-util.cc M src/kudu/client/client-test-util.h M src/kudu/integration-tests/CMakeLists.txt A src/kudu/integration-tests/consistency-itest.cc 4 files changed, 401 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/84/5084/3 -- To view, visit http://gerrit.cloudera.org:8080/5084 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I88e0d4e244be8abcef18e0b8317bacfa9bf272cb Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [integration tests] added scan consistency test
Alexey Serbin has posted comments on this change. Change subject: [integration tests] added scan consistency test .. Patch Set 2: (13 comments) http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/client/client-test-util.cc File src/kudu/client/client-test-util.cc: Line 21: > extra line and include order This is intentional to conform with our C++ style guide: https://google.github.io/styleguide/cppguide.html#Names_and_Order_of_Includes Line 78: row_count_status = scanner->Open(); > if scanner->NextBatch() on LOC 89 timesout won't you Open() a scanner that' Good catch! Yes, that I will fix. http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/client/client-test-util.h File src/kudu/client/client-test-util.h: PS2, Line 55: CountTableRows > Maybe call this CountTableRowsWithRetries or something? I would also not be Yes, I think it's worth updating the name. Good -- that's another chance for small re-factoring. I will think of doing that in a separate changelist along with putting some methods introduced here for re-use by other tests. http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/integration-tests/consistency-itest.cc File src/kudu/integration-tests/consistency-itest.cc: Line 59: using kudu::master::TableInfo; > warning: using decl 'TableInfo' is unused [misc-unused-using-decls] Done Line 60: using kudu::master::TabletInfo; > warning: using decl 'TabletInfo' is unused [misc-unused-using-decls] Done Line 62: using kudu::tablet::Tablet; > warning: using decl 'Tablet' is unused [misc-unused-using-decls] Done Line 68: using std::thread; > warning: using decl 'thread' is unused [misc-unused-using-decls] Done PS2, Line 90: FLAGS_heartbeat_interval_ms = 10; > why? I copied this from client-test. This is for faster tests: if something goes wrong, with this faster setting it reports about an error faster, and overall about 700ms per test. I'll add a comment. Line 116: shared_ptr* table) { > warning: parameter 'table' is unused [misc-unused-parameters] Done PS2, Line 130: unique_ptr BuildTestRow(KuduTable* table, int index) { : unique_ptr insert(table->NewInsert()); : KuduPartialRow* row = insert->mutable_row(); : CHECK_OK(row->SetInt32(0, index)); : CHECK_OK(row->SetInt32(1, index * 2)); : CHECK_OK(row->SetStringCopy(2, Slice(StringPrintf("hello %d", index; : return insert; : } : : // Inserts given number of tests rows into the default test table : // in the context of the specified session. : Status InsertTestRows(KuduClient* client, KuduTable* table, : int num_rows, int first_row = 0) { : shared_ptr session = client->NewSession(); : RETURN_NOT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_BACKGROUND)); : session->SetTimeoutMillis(6); : for (int i = first_row; i < num_rows + first_row; ++i) { : unique_ptr insert(BuildTestRow(table, i)); : RETURN_NOT_OK(session->Apply(insert.release())); : } : RETURN_NOT_OK(session->Flush()); : return Status::OK(); : } : : Status GetRowCount(KuduTable* table, KuduScanner::ReadMode read_mode, : uint64_t ts, size_t* row_count) { : KuduScanner scanner(table); : RETURN_NOT_OK(scanner.SetReadMode(read_mode)); : if (read_mode == KuduScanner::READ_AT_SNAPSHOT && ts != 0) { : RETURN_NOT_OK(scanner.SetSnapshotRaw(ts + 1)); : } : RETURN_NOT_OK(CountTableRows(, row_count)); : return Status::OK(); : } : : Status GetTabletIdForKeyValue(int32_t key_value_begin, : int32_t key_value_end, : const string& table_name, : vector* tablet_ids) { : if (!tablet_ids) { : return Status::InvalidArgument("null output container"); : } : tablet_ids->clear(); : : // Find the tablet for the first range (i.e. for the rows to be inserted). : unique_ptr split_row_start(schema_.NewRow()); : RETURN_NOT_OK(split_row_start->SetInt32(0, key_value_begin)); : string partition_key_start; : RETURN_NOT_OK(split_row_start->EncodeRowKey(_key_start)); : : unique_ptr split_row_end(schema_.NewRow()); :
[kudu-CR] [Timestamp] use 'operator<' instead of ComesBefore
David Ribeiro Alves has posted comments on this change. Change subject: [Timestamp] use 'operator<' instead of ComesBefore .. Patch Set 3: (4 comments) lgtm, but please remove the CompactionInputRow stuff http://gerrit.cloudera.org:8080/#/c/5096/3/src/kudu/tablet/compaction.cc File src/kudu/tablet/compaction.cc: PS3, Line 474: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : same PS3, Line 350: if (smallest < state->next()) { same PS3, Line 565: namespace { : void AdvanceToLastInList(const Mutation** m) { : const Mutation* next; : while ((next = (*m)->acquire_next()) != nullptr) { : *m = next; : } : } : } // anonymous namespace : : // Compare the mutations of two duplicated rows. : // Return 'true' if latest_version(left) < latest_version(right) : bool operator<(const CompactionInputRow& lhs, const CompactionInputRow& rhs) { : const Mutation* left_latest = lhs.redo_head; : const Mutation* right_latest = rhs.redo_head; : if (right_latest == nullptr) { : DCHECK(left_latest != nullptr); : return true; : } : if (left_latest == nullptr) { : // left must still be alive : DCHECK(right_latest != nullptr); : return false; : } : : // Duplicated rows have disjoint histories, we don't need to get the latest : // mutation, the first one should be enough for the sake of determining the most recent : // row, but in debug mode do get the latest to make sure one of the rows is a ghost. : const bool ret = left_latest->timestamp() < right_latest->timestamp(); : #ifndef NDEBUG : AdvanceToLastInList(_latest); : AdvanceToLastInList(_latest); : if (left_latest->timestamp() != right_latest->timestamp()) { : // If in fact both rows were deleted at the same time, this is OK -- we could : // have a case like TestRandomAccess.TestFuzz3, in which a single batch : // DELETED from the DRS, INSERTed into MRS, and DELETED from MRS. In that case, : // the timestamp of the last REDO will be the same and we can pick whichever : // we like. : const bool debug_ret = left_latest->timestamp() < right_latest->timestamp(); : CHECK_EQ(ret, debug_ret); : } : #endif : return ret; : } same http://gerrit.cloudera.org:8080/#/c/5096/3/src/kudu/tablet/compaction.h File src/kudu/tablet/compaction.h: PS3, Line 167: bool operator<(const CompactionInputRow& lhs, const CompactionInputRow& rhs); this seems out of place in this patch (the commit message only mentions Timestamp) and actually goes against the reinsert stuff I have in-flight where I completely change the comparison between two CompactionInputRows, mind removing this from this patch? -- To view, visit http://gerrit.cloudera.org:8080/5096 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4a5b0f90e92f6de40822cfe872b417cf0c53121a Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Dinesh Bhat Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Dan Burkert has submitted this change and it was merged. Change subject: KUDU-1750: Drop range partition is not working as expected .. KUDU-1750: Drop range partition is not working as expected Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Reviewed-on: http://gerrit.cloudera.org:8080/5133 Reviewed-by: Adar DemboTested-by: Kudu Jenkins --- M src/kudu/integration-tests/alter_table-test.cc M src/kudu/master/catalog_manager.cc 2 files changed, 196 insertions(+), 2 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan Burkert Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Adar Dembo has posted comments on this change. Change subject: KUDU-1750: Drop range partition is not working as expected .. Patch Set 2: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Dan Burkert has posted comments on this change. Change subject: KUDU-1750: Drop range partition is not working as expected .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/5133/1/src/kudu/integration-tests/alter_table-test.cc File src/kudu/integration-tests/alter_table-test.cc: PS1, Line 1308: KUDU-1750 Regression cases > If not there, can you also add a test case with dropping unbounded range pa Done -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5133 to look at the new patch set (#2). Change subject: KUDU-1750: Drop range partition is not working as expected .. KUDU-1750: Drop range partition is not working as expected Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a --- M src/kudu/integration-tests/alter_table-test.cc M src/kudu/master/catalog_manager.cc 2 files changed, 196 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/33/5133/2 -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Dimitris Tsirogiannis has posted comments on this change. Change subject: KUDU-1750: Drop range partition is not working as expected .. Patch Set 1: (1 comment) http://gerrit.cloudera.org:8080/#/c/5133/1/src/kudu/integration-tests/alter_table-test.cc File src/kudu/integration-tests/alter_table-test.cc: PS1, Line 1308: KUDU-1750 Regression cases If not there, can you also add a test case with dropping unbounded range partitions? e.g. add (, 100]. drop (, 200] or something along these lines. -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1750: Drop range partition is not working as expected
Hello Adar Dembo, Dimitris Tsirogiannis, Todd Lipcon, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/5133 to review the following change. Change subject: KUDU-1750: Drop range partition is not working as expected .. KUDU-1750: Drop range partition is not working as expected Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a --- M src/kudu/integration-tests/alter_table-test.cc M src/kudu/master/catalog_manager.cc 2 files changed, 64 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/33/5133/1 -- To view, visit http://gerrit.cloudera.org:8080/5133 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I82c11fbc767f81ab3fe8f486d76a45e3ca3f5b9a Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Dan BurkertGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1679 Propagate timestamps for scans
Alexey Serbin has posted comments on this change. Change subject: KUDU-1679 Propagate timestamps for scans .. Patch Set 5: > Could you put this patch after the consistency itest patch in the > git history and enable that test here? Good idea. Sure, will do. -- To view, visit http://gerrit.cloudera.org:8080/5099 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4d79024b088ea88fd194cabcb61e640f66326264 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] [python] added KuduPartialRow::SetNoCopy{Binary,String}()
Alexey Serbin has posted comments on this change. Change subject: [python] added KuduPartialRow::SetNoCopy{Binary,String}() .. Patch Set 2: > didnt finish my sentence above...given the way python handles the > semantics for PartialRows, im not sure if theres any way to deal > with the NoCopy setters, also not 100% sure what effect python GC > would have on using a NoCopy setter. Well, supposedly it does the same thing as it did for old semantics of SetString/SetBinary -- prior to 48766a4ce17d422ced9a6ec78c9a9969ac44d8c9 they were not copying data. Basically, older Set{String,Binary} behaved like current Set{String,Binary}NoCopy. If you think it requires additional clarification -- sure, let's do that. I just assumed that since it worked for Set{String,Binary} before, it's going to work for Set{String,Binary}NoCopy now. -- To view, visit http://gerrit.cloudera.org:8080/5114 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: If73894c3037f1158cf7b9d3aafecd228a0204bbd Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Jordan Birdsell Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] [python] added KuduPartialRow::SetNoCopy{Binary,String}()
Alexey Serbin has posted comments on this change. Change subject: [python] added KuduPartialRow::SetNoCopy{Binary,String}() .. Patch Set 2: > Was this more for parity's sake or did you need this exposed? The > libkudu_client module really just exposes the external signatures > to python so if you want this to be exposed in the client it would > need to be implemented in the PartialRow class in client.pyx. > However, given the way python handles the semantics for PartialRows > (schema.new_row({'foo': 'bar'} or alternatively row['foo'] = 'bar' Yes, that was more about parity and also updating the stale comment about the SetString/SetBinary -- those changed their sematics. -- To view, visit http://gerrit.cloudera.org:8080/5114 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: If73894c3037f1158cf7b9d3aafecd228a0204bbd Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Jordan Birdsell Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Alexey Serbin has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 6: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/6/src/kudu/rpc/sasl_common.cc File src/kudu/rpc/sasl_common.cc: PS6, Line 28: #include nit: does it make sense to include only for non-macOS builds? -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Alexey Serbin has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 6: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/6/src/kudu/rpc/sasl_rpc-test.cc File src/kudu/rpc/sasl_rpc-test.cc: PS6, Line 570: // Test a client which inits SASL itself but doesn't remember to disable Kudu's : // SASL initialization nit: is it worth mentioning in the comment that the client does not do proper mutex initialization? -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-861 Support changing default, storage attributes
Dan Burkert has posted comments on this change. Change subject: KUDU-861 Support changing default, storage attributes .. Patch Set 12: (13 comments) http://gerrit.cloudera.org:8080/#/c/4310/12/java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java File java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java: PS12, Line 133: `newDefault` must not be null or :* else throws {@link IllegalArgumentException}. Does Kudu allow a nullable column to not have a default value (e.g. error on omission)? http://gerrit.cloudera.org:8080/#/c/4310/12/java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java File java/kudu-client/src/main/java/org/apache/kudu/client/ProtobufHelper.java: Line 256: } else if (value instanceof byte[]) { PartialRow allows setting a binary column with a ByteBuffer, so that should probably work here as well. http://gerrit.cloudera.org:8080/#/c/4310/12/java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java: PS12, Line 88: pizza I think this is going to fail when you rebase against master. The debug format of string columns was recently changed to include quotes around the value. Line 135: syncClient.deleteTable(tableName); We just fixed this, so you can remove this try/finally. http://gerrit.cloudera.org:8080/#/c/4310/12/src/kudu/common/schema.cc File src/kudu/common/schema.cc: Line 60: if (col_delta.has_default && col_delta.default_value.size() < type_info()->size()) { Should this be a != instead of the inequality? PS12, Line 71: NULL prefer using nullptr instead of NULL Line 80: if (write_default_ == NULL) { I commented on this previously but I think it got lost in the shuffle - Can these if/else trees be collapsed to just the else branch? It seems like Reset should work even if the current value is nullptr. Line 494: unordered_set::const_iterator it_names; move this down to above the second if statement, and initialize it with the declaration. Goal here is to remove all the initialization-in-if-conditions, I find those difficult. Line 497: if ((it_names = col_names_.find(new_name)) != col_names_.end()) { Don't use a local variable here, since it's not referenced again. PS12, Line 547: = col_names_.find(col_delta.name) move this initialization to the line above. http://gerrit.cloudera.org:8080/#/c/4310/12/src/kudu/common/schema.h File src/kudu/common/schema.h: Line 128: std::string new_name; I think it would be cleaner if all of these fields were wrapped in a boost::optional instead of having the associated boolean. PS12, Line 281: return returns http://gerrit.cloudera.org:8080/#/c/4310/12/src/kudu/common/wire_protocol.cc File src/kudu/common/wire_protocol.cc: PS12, Line 266: indentation -- To view, visit http://gerrit.cloudera.org:8080/4310 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I457d99ba2188ef6e439df47c0d94f2dc1a62ea6c Gerrit-PatchSet: 12 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Will BerkeleyGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-Reviewer: Will Berkeley Gerrit-HasComments: Yes
[kudu-CR] KUDU-1679 Propagate timestamps for scans
David Ribeiro Alves has posted comments on this change. Change subject: KUDU-1679 Propagate timestamps for scans .. Patch Set 5: Could you put this patch after the consistency itest patch in the git history and enable that test here? -- To view, visit http://gerrit.cloudera.org:8080/5099 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4d79024b088ea88fd194cabcb61e640f66326264 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1679 Propagate timestamps for scans
David Ribeiro Alves has posted comments on this change. Change subject: KUDU-1679 Propagate timestamps for scans .. Patch Set 5: (1 comment) http://gerrit.cloudera.org:8080/#/c/5099/4/src/kudu/client/scan_configuration.h File src/kudu/client/scan_configuration.h: PS4, Line 166: uint64_t snapshot_timestamp_; > For C++ mapping the PB field is uint64: good point. dunno why I thought it mapped to int64 -- To view, visit http://gerrit.cloudera.org:8080/5099 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4d79024b088ea88fd194cabcb61e640f66326264 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [integration tests] added scan consistency test
David Ribeiro Alves has posted comments on this change. Change subject: [integration tests] added scan consistency test .. Patch Set 2: (8 comments) http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/client/client-test-util.cc File src/kudu/client/client-test-util.cc: Line 21: extra line and include order Line 78: row_count_status = scanner->Open(); if scanner->NextBatch() on LOC 89 timesout won't you Open() a scanner that's already open here? http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/client/client-test-util.h File src/kudu/client/client-test-util.h: PS2, Line 55: CountTableRows Maybe call this CountTableRowsWithRetries or something? I would also not be averse to making this one the only version. http://gerrit.cloudera.org:8080/#/c/5084/2/src/kudu/integration-tests/consistency-itest.cc File src/kudu/integration-tests/consistency-itest.cc: PS2, Line 90: FLAGS_heartbeat_interval_ms = 10; why? PS2, Line 130: unique_ptr BuildTestRow(KuduTable* table, int index) { : unique_ptr insert(table->NewInsert()); : KuduPartialRow* row = insert->mutable_row(); : CHECK_OK(row->SetInt32(0, index)); : CHECK_OK(row->SetInt32(1, index * 2)); : CHECK_OK(row->SetStringCopy(2, Slice(StringPrintf("hello %d", index; : return insert; : } : : // Inserts given number of tests rows into the default test table : // in the context of the specified session. : Status InsertTestRows(KuduClient* client, KuduTable* table, : int num_rows, int first_row = 0) { : shared_ptr session = client->NewSession(); : RETURN_NOT_OK(session->SetFlushMode(KuduSession::AUTO_FLUSH_BACKGROUND)); : session->SetTimeoutMillis(6); : for (int i = first_row; i < num_rows + first_row; ++i) { : unique_ptr insert(BuildTestRow(table, i)); : RETURN_NOT_OK(session->Apply(insert.release())); : } : RETURN_NOT_OK(session->Flush()); : return Status::OK(); : } : : Status GetRowCount(KuduTable* table, KuduScanner::ReadMode read_mode, : uint64_t ts, size_t* row_count) { : KuduScanner scanner(table); : RETURN_NOT_OK(scanner.SetReadMode(read_mode)); : if (read_mode == KuduScanner::READ_AT_SNAPSHOT && ts != 0) { : RETURN_NOT_OK(scanner.SetSnapshotRaw(ts + 1)); : } : RETURN_NOT_OK(CountTableRows(, row_count)); : return Status::OK(); : } : : Status GetTabletIdForKeyValue(int32_t key_value_begin, : int32_t key_value_end, : const string& table_name, : vector* tablet_ids) { : if (!tablet_ids) { : return Status::InvalidArgument("null output container"); : } : tablet_ids->clear(); : : // Find the tablet for the first range (i.e. for the rows to be inserted). : unique_ptr split_row_start(schema_.NewRow()); : RETURN_NOT_OK(split_row_start->SetInt32(0, key_value_begin)); : string partition_key_start; : RETURN_NOT_OK(split_row_start->EncodeRowKey(_key_start)); : : unique_ptr split_row_end(schema_.NewRow()); : RETURN_NOT_OK(split_row_end->SetInt32(0, key_value_end)); : string partition_key_end; : RETURN_NOT_OK(split_row_end->EncodeRowKey(_key_end)); : : GetTableLocationsRequestPB req; : req.mutable_table()->set_table_name(table_name); : req.set_partition_key_start(partition_key_start); : req.set_partition_key_end(partition_key_end); : master::CatalogManager* catalog = : cluster_->mini_master()->master()->catalog_manager(); : GetTableLocationsResponsePB resp; : CatalogManager::ScopedLeaderSharedLock l(catalog); : RETURN_NOT_OK(l.first_failed_status()); : RETURN_NOT_OK(catalog->GetTableLocations(, )); : for (size_t i = 0; i < resp.tablet_locations_size(); ++i) { : tablet_ids->emplace_back(resp.tablet_locations(i).tablet_id()); : } : : return Status::OK(); : } any way to re-use some stuff from other tests? Maybe add
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Adar Dembo has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 6: Code-Review+2 Looks good to me, though Alexey/Todd may want to have another look. -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/rpc/sasl_common.cc File src/kudu/rpc/sasl_common.cc: PS3, Line 218: > extra space Done -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/client/client.h File src/kudu/client/client.h: PS3, Line 132: SASL > I think changing just this one instance would be enough to precisely indica Done -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (2 comments) http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/rpc/sasl_rpc-test.cc File src/kudu/rpc/sasl_rpc-test.cc: PS3, Line 511: executable_path, : "test", : filter_flag, : "--is_test_child"}, > Nit: indentation is strangely unaligned here. Done http://gerrit.cloudera.org:8080/#/c/5120/4/src/kudu/rpc/sasl_rpc-test.cc File src/kudu/rpc/sasl_rpc-test.cc: PS4, Line 561: rpc::internal::SaslSetMutex(); > Does it make sense to add a test where this is skipped by the client? I.e. Done -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5120 to look at the new patch set (#6). Change subject: KUDU-1749. Allow callers to disable SASL initialization .. KUDU-1749. Allow callers to disable SASL initialization The Kudu client makes use of SASL, as do other applications such as Impala that use the client. This means that both Kudu and those applications are expected to initialize SASL. The sasl_*_init() functions themselves are safe to call multiple times (they have no effect). However, sasl_set_mutex() is not safe to call multiple times, nor is it safe to call after another library has already begun using the SASL libraries. IMPALA-4479 describes a crash in SaslMutexUnlock() which is likely caused by this issue: Impala has initialized the SASL library with no call to sasl_set_mutex(), and then during Kudu initialization we set the mutex functions to our own. Then when we call sasl_dispose(), SASL tries to acquire an internal mutex which was previously allocated to a garbage value 0x1 by the built-in "fake" mutex implementation. This crashes when we attempt to access it using our real mutex implementation. The fix has a few parts: - we have a new API which allows embedders to disable initialization of SASL. - we try to auto-detect the case in which the client has fully initialized SASL including providing a mutex implementation. In that case, we skip initialization but log a warning that the caller should disable it explicitly. - if we detect that it's initialized but no mutex implementation is provided, we'll log a warning on first usage of SASL. - if they disable initialization but didn't initialize SASL on their own, we'll return an error on first usage. The one sketchy thing about this patch is that the SASL API doesn't give a 100% public way to determine its initialization state. However, it does export a symbol which we can import that provides the necessary information. This symbol is marked as an API, so we expect it to be stable enough for usage, at least across the range of supported operating systems. Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd --- M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/rpc/sasl_common.cc M src/kudu/rpc/sasl_common.h M src/kudu/rpc/sasl_rpc-test.cc 5 files changed, 212 insertions(+), 10 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/20/5120/6 -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/client/client.h File src/kudu/client/client.h: PS3, Line 132: SASL > Only if the client is also using the Cyrus SASL library, right? In theory t Yes in theory. In practice the overlap between people using custom sasl libraries and kudu is probably non-existent. Would you like me to change SASL to Cyrus SASL everywhere it's used, or something else to make it clearer? -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1747 addColumn API is wrong wrt nullability and default values
Dimitris Tsirogiannis has posted comments on this change. Change subject: KUDU-1747 addColumn API is wrong wrt nullability and default values .. Patch Set 1: Code-Review+1 (1 comment) http://gerrit.cloudera.org:8080/#/c/5132/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java File java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java: Line 129: } I would also expand the test to make sure that I can insert a row that has a null in the addNullableDef column and when I read it back I get the null value and not some default. -- To view, visit http://gerrit.cloudera.org:8080/5132 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I0706839a3dbe21532afd524e2d3fc020d31a9973 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Will BerkeleyGerrit-Reviewer: Dimitris Tsirogiannis Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5120 to look at the new patch set (#5). Change subject: KUDU-1749. Allow callers to disable SASL initialization .. KUDU-1749. Allow callers to disable SASL initialization The Kudu client makes use of SASL, as do other applications such as Impala that use the client. This means that both Kudu and those applications are expected to initialize SASL. The sasl_*_init() functions themselves are safe to call multiple times (they have no effect). However, sasl_set_mutex() is not safe to call multiple times, nor is it safe to call after another library has already begun using the SASL libraries. IMPALA-4479 describes a crash in SaslMutexUnlock() which is likely caused by this issue: Impala has initialized the SASL library with no call to sasl_set_mutex(), and then during Kudu initialization we set the mutex functions to our own. Then when we call sasl_dispose(), SASL tries to acquire an internal mutex which was previously allocated to a garbage value 0x1 by the built-in "fake" mutex implementation. This crashes when we attempt to access it using our real mutex implementation. The fix has a few parts: - we have a new API which allows embedders to disable initialization of SASL. - we try to auto-detect the case in which the client has fully initialized SASL including providing a mutex implementation. In that case, we skip initialization but log a warning that the caller should disable it explicitly. - if we detect that it's initialized but no mutex implementation is provided, we'll log a warning on first usage of SASL. - if they disable initialization but didn't initialize SASL on their own, we'll return an error on first usage. The one sketchy thing about this patch is that the SASL API doesn't give a 100% public way to determine its initialization state. However, it does export a symbol which we can import that provides the necessary information. This symbol is marked as an API, so we expect it to be stable enough for usage, at least across the range of supported operating systems. Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd --- M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/rpc/sasl_common.cc M src/kudu/rpc/sasl_common.h M src/kudu/rpc/sasl_rpc-test.cc 5 files changed, 200 insertions(+), 10 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/20/5120/5 -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1722 - Range Partition Failure on UNIXTIME MICROS
Jordan Birdsell has submitted this change and it was merged. Change subject: KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS .. KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS Errors are returned when attempting to add range partition bounds for a unixtime_micros value when specifying bound types that are not the default. This is happening because the logic to convert the bounds to defaults (inclusive for Lower and exclusive for Upper) converts the UNIXTIME_MICROS value to an INT64. This patch addresses this issue and includes a test. Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb Reviewed-on: http://gerrit.cloudera.org:8080/5119 Tested-by: Kudu Jenkins Reviewed-by: Dan Burkert--- M src/kudu/client/client-test.cc M src/kudu/common/partition.cc 2 files changed, 39 insertions(+), 3 deletions(-) Approvals: Dan Burkert: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5119 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jordan Birdsell Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jordan Birdsell Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot
[kudu-CR] KUDU-1722 - Range Partition Failure on UNIXTIME MICROS
Dan Burkert has posted comments on this change. Change subject: KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS .. Patch Set 4: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/5119 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jordan BirdsellGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-HasComments: No
[kudu-CR] el6: fix krb5 realm workaround for static builds
Dan Burkert has submitted this change and it was merged. Change subject: el6: fix krb5 realm workaround for static builds .. el6: fix krb5 realm workaround for static builds Here's another attempt at enabling the workaround for the numeric realm problem on el6 (see ba2ae3de4a7c43ff2f5873e822410e066ea99667 for background). The previous attempt didn't succeed for static builds because we were setting LD_PRELOAD to the non-absolute path of the override library. This worked OK in debug builds because our binary RUNPATHs included the build/lib/ directory. Static builds didn't have such a RUNPATH and thus the LD_PRELOAD was unable to locate the specified shared object. The two options to fix this were (1) determine and specify an absolute path, or (2) build this workaround into all of our binaries rather than try to preload it at runtime. The issue with #1 is that, when we get to Java-based testing, it would have been inconvenient to determine the absolute path of the override library. In addition, it would make test binaries non-relocatable, which is somewhat of a hassle. So, this takes approach #2. The build incantations are a bit nasty. In order to make sure that the symbol shows up everywhere, and shows up before the krb5 library, and doesn't show up more than once (to avoid ODR violations), we have to manually add it to the link list for the the executables that need the override. This includes the tests (and thus the 'test_main' library) as well as any executables which are run by the tests ((tserver, master, and 'kudu' tool). In addition, we need to make sure that the linker doesn't entirely skip the override binary. I accomplished this using the '--undefined' linker flag. I tested this patch using both sasl_rpc-test and external_mini_cluster-test on an el6 box in both debug (dynamic linked) and release (static-linked) builds. I also fully built both build types to ensure there were no linker issues in unrelated tests. Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Reviewed-on: http://gerrit.cloudera.org:8080/5100 Tested-by: Kudu Jenkins Reviewed-by: Adar DemboReviewed-by: Dan Burkert --- M CMakeLists.txt M src/kudu/integration-tests/CMakeLists.txt M src/kudu/integration-tests/external_mini_cluster.cc M src/kudu/master/CMakeLists.txt M src/kudu/security/CMakeLists.txt R src/kudu/security/krb5_realm_override.cc M src/kudu/tools/CMakeLists.txt M src/kudu/tserver/CMakeLists.txt M src/kudu/util/CMakeLists.txt M src/kudu/util/test_main.cc M src/kudu/util/test_util.cc 11 files changed, 39 insertions(+), 38 deletions(-) Approvals: Dan Burkert: Looks good to me, approved Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] el6: fix krb5 realm workaround for static builds
Dan Burkert has posted comments on this change. Change subject: el6: fix krb5 realm workaround for static builds .. Patch Set 5: Code-Review+2 oops wrong patch -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] el6: fix krb5 realm workaround for static builds
Dan Burkert has posted comments on this change. Change subject: el6: fix krb5 realm workaround for static builds .. Patch Set 5: Code-Review-1 Still broken on OS X - see previous comment with gist. -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR](gh-pages) Fix list rendering of the last weekly update post
David Ribeiro Alves has submitted this change and it was merged. Change subject: Fix list rendering of the last weekly update post .. Fix list rendering of the last weekly update post The sublist after "Noteworthy features/improvements" is not rendering properly. Apparently it was missing a new line to be indentified as a list but adding it made things look weird too (a new line before the list but none after). This makes the list a "definition list" which boldens the title and avoids the new line weirdness at the cost of extra indenting. Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Reviewed-on: http://gerrit.cloudera.org:8080/5131 Reviewed-by: Todd LipconTested-by: David Ribeiro Alves --- M _posts/2016-11-15-weekly-update.md 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: David Ribeiro Alves: Verified Todd Lipcon: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/5131 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: David Ribeiro Alves Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1747 addColumn API is wrong wrt nullability and default values
Will Berkeley has uploaded a new change for review. http://gerrit.cloudera.org:8080/5132 Change subject: KUDU-1747 addColumn API is wrong wrt nullability and default values .. KUDU-1747 addColumn API is wrong wrt nullability and default values Previously, the java client permitted adding - a non-null column with a default - a nullable column with no default but did not allow adding - a nullable column with a default even though it should be allowed. This patch adds that capability by adding a 'defaultVal' argument to an overloaded AlterTableOptions.addNullableColumn. It is backwards-compatible. Additionally, a test was added to check behavior of the three addColumn possibilities. Change-Id: I0706839a3dbe21532afd524e2d3fc020d31a9973 --- M java/kudu-client/src/main/java/org/apache/kudu/client/AlterTableOptions.java M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java 2 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/32/5132/1 -- To view, visit http://gerrit.cloudera.org:8080/5132 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0706839a3dbe21532afd524e2d3fc020d31a9973 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Will Berkeley
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5120 to look at the new patch set (#4). Change subject: KUDU-1749. Allow callers to disable SASL initialization .. KUDU-1749. Allow callers to disable SASL initialization The Kudu client makes use of SASL, as do other applications such as Impala that use the client. This means that both Kudu and those applications are expected to initialize SASL. The sasl_*_init() functions themselves are safe to call multiple times (they have no effect). However, sasl_set_mutex() is not safe to call multiple times, nor is it safe to call after another library has already begun using the SASL libraries. IMPALA-4479 describes a crash in SaslMutexUnlock() which is likely caused by this issue: Impala has initialized the SASL library with no call to sasl_set_mutex(), and then during Kudu initialization we set the mutex functions to our own. Then when we call sasl_dispose(), SASL tries to acquire an internal mutex which was previously allocated to a garbage value 0x1 by the built-in "fake" mutex implementation. This crashes when we attempt to access it using our real mutex implementation. The fix has a few parts: - we have a new API which allows embedders to disable initialization of SASL. - we try to auto-detect the case in which the client has fully initialized SASL including providing a mutex implementation. In that case, we skip initialization but log a warning that the caller should disable it explicitly. - if we detect that it's initialized but no mutex implementation is provided, we'll log a warning on first usage of SASL. - if they disable initialization but didn't initialize SASL on their own, we'll return an error on first usage. The one sketchy thing about this patch is that the SASL API doesn't give a 100% public way to determine its initialization state. However, it does export a symbol which we can import that provides the necessary information. This symbol is marked as an API, so we expect it to be stable enough for usage, at least across the range of supported operating systems. Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd --- M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/rpc/sasl_common.cc M src/kudu/rpc/sasl_common.h M src/kudu/rpc/sasl_rpc-test.cc 5 files changed, 183 insertions(+), 10 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/20/5120/4 -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon
[kudu-CR](gh-pages) Fix list rendering of the last weekly update post
David Ribeiro Alves has posted comments on this change. Change subject: Fix list rendering of the last weekly update post .. Patch Set 2: Verified+1 -- To view, visit http://gerrit.cloudera.org:8080/5131 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: David Ribeiro AlvesGerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR](gh-pages) Fix list rendering of the last weekly update post
Todd Lipcon has posted comments on this change. Change subject: Fix list rendering of the last weekly update post .. Patch Set 2: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/5131 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: David Ribeiro AlvesGerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] el6: fix krb5 realm workaround for static builds
Adar Dembo has posted comments on this change. Change subject: el6: fix krb5 realm workaround for static builds .. Patch Set 5: Code-Review+2 (1 comment) http://gerrit.cloudera.org:8080/#/c/5100/5/CMakeLists.txt File CMakeLists.txt: Line 952: set(KRB5_REALM_OVERRIDE -Wl,--undefined=krb5_realm_override_loaded krb5_realm_override) Nit: indent a bit. -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1722 - Range Partition Failure on UNIXTIME MICROS
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5119 to look at the new patch set (#4). Change subject: KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS .. KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS Errors are returned when attempting to add range partition bounds for a unixtime_micros value when specifying bound types that are not the default. This is happening because the logic to convert the bounds to defaults (inclusive for Lower and exclusive for Upper) converts the UNIXTIME_MICROS value to an INT64. This patch addresses this issue and includes a test. Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb --- M src/kudu/client/client-test.cc M src/kudu/common/partition.cc 2 files changed, 39 insertions(+), 3 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/5119/4 -- To view, visit http://gerrit.cloudera.org:8080/5119 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jordan BirdsellGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot
[kudu-CR] tablet copy: Make the StartTabletCopy() RPC async
Dinesh Bhat has posted comments on this change. Change subject: tablet copy: Make the StartTabletCopy() RPC async .. Patch Set 2: (5 comments) http://gerrit.cloudera.org:8080/#/c/5045/2/src/kudu/tserver/ts_tablet_manager.cc File src/kudu/tserver/ts_tablet_manager.cc: Line 320: spurious \n ? PS2, Line 436: success_callback I am curious why we needed a different callback for success ? One callback can have if (status == success ) OpenTablet() else Tombstone() ? PS2, Line 444: open_tablet_pool_ Interesting, just thinking out loud here about possible outcomes of using the same threadpool as that of OpenTablet(): Given that open_tablet_pool_ contains as many max threads as there are tablets to open during server bring up, tablet copy could contend with OpenTablet() threads if consensus for these tablets starts up in the context of OpenTablet(). i.e, leader could get to know about follower before OpenTablet thread finishes and starts a tablet copy session (because it is tombstoned or whatever reason) and now there is a possibility that there are no threads available to start async tablet copy ? Or am I just hallucinating ? PS2, Line 446: TOMBSTONE_NOT_OK There is nothing to tombstone at this point right ? We could as well leave the tablet as it is since it hasn't changed its state yet. http://gerrit.cloudera.org:8080/#/c/5045/2/src/kudu/tserver/ts_tablet_manager.h File src/kudu/tserver/ts_tablet_manager.h: PS2, Line 328: tablet_copy_sessions_ Good idea, we could eventually connect this to metrics or tools to show the number of tablets being tablet copied, right ? -- To view, visit http://gerrit.cloudera.org:8080/5045 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I95c63f2bfd6762487862efbdba9cb3676112 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Mike PercyGerrit-Reviewer: Dinesh Bhat Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [docs] Add krb5-devel to the SLES12 instructions
Adar Dembo has posted comments on this change. Change subject: [docs] Add krb5-devel to the SLES12 instructions .. Patch Set 1: (2 comments) I bet you need the equivalent of krb5-devel in the other distros too. There's libkrb5-dev on Ubuntu which provides /usr/include/krb5.h, and /usr/include/gssapi as well as a bunch of shared objects. http://gerrit.cloudera.org:8080/#/c/5130/1/docs/installation.adoc File docs/installation.adoc: Line 451: $ sudo zypper install autoconf automake curl cyrus-sasl-devel \ I think Dan resorted this; could you maintain the sort order? Line 504: sudo zypper install -y autoconf automake curl cyrus-sasl-devel \ Same. -- To view, visit http://gerrit.cloudera.org:8080/5130 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9f98443a923edb6687427a5863e969883266bd30 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [docs] Add krb5-devel to the SLES12 instructions
Jean-Daniel Cryans has posted comments on this change. Change subject: [docs] Add krb5-devel to the SLES12 instructions .. Patch Set 1: (1 comment) > (2 comments) > > I bet you need the equivalent of krb5-devel in the other distros > too. There's libkrb5-dev on Ubuntu which provides /usr/include/krb5.h, > and /usr/include/gssapi as well as a bunch of shared objects. I'm just fixing the SLES12 install docs, I didn't look at the other platforms. AFAIK they're supposed to be complete (looks at Dan). http://gerrit.cloudera.org:8080/#/c/5130/1/docs/installation.adoc File docs/installation.adoc: Line 451: $ sudo zypper install autoconf automake curl cyrus-sasl-devel \ > I think Dan resorted this; could you maintain the sort order? Oh I didn't even notice, I was just putting it next to openssl. Thanks! -- To view, visit http://gerrit.cloudera.org:8080/5130 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9f98443a923edb6687427a5863e969883266bd30 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [docs] Add krb5-devel to the SLES12 instructions
Hello Dan Burkert, Todd Lipcon, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5130 to look at the new patch set (#2). Change subject: [docs] Add krb5-devel to the SLES12 instructions .. [docs] Add krb5-devel to the SLES12 instructions Change-Id: I9f98443a923edb6687427a5863e969883266bd30 --- M docs/installation.adoc 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/30/5130/2 -- To view, visit http://gerrit.cloudera.org:8080/5130 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9f98443a923edb6687427a5863e969883266bd30 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Jean-Daniel Cryans Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (1 comment) http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/rpc/sasl_common.cc File src/kudu/rpc/sasl_common.cc: PS3, Line 218: extra space -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Adar Dembo has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: (2 comments) Mostly just wanted to look at the API changes. http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/client/client.h File src/kudu/client/client.h: PS3, Line 132: SASL Only if the client is also using the Cyrus SASL library, right? In theory there are other SASL implementations for which there'd be no overlap at all? http://gerrit.cloudera.org:8080/#/c/5120/3/src/kudu/rpc/sasl_rpc-test.cc File src/kudu/rpc/sasl_rpc-test.cc: PS3, Line 511: executable_path, : "test", : filter_flag, : "--is_test_child"}, Nit: indentation is strangely unaligned here. -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR](gh-pages) Fix list rendering of the last weekly update post
David Ribeiro Alves has uploaded a new patch set (#2). Change subject: Fix list rendering of the last weekly update post .. Fix list rendering of the last weekly update post The sublist after "Noteworthy features/improvements" is not rendering properly. Apparently it was missing a new line to be indentified as a list but adding it made things look weird too (a new line before the list but none after). This makes the list a "definition list" which boldens the title and avoids the new line weirdness at the cost of extra indenting. Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 --- M _posts/2016-11-15-weekly-update.md 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/31/5131/2 -- To view, visit http://gerrit.cloudera.org:8080/5131 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: David Ribeiro Alves
[kudu-CR](gh-pages) Fix list rendering of the last weekly update post
David Ribeiro Alves has uploaded a new change for review. http://gerrit.cloudera.org:8080/5131 Change subject: Fix list rendering of the last weekly update post .. Fix list rendering of the last weekly update post The sublist after "Noteworthy features/improvements" is not rendering properly. Apparently it was missing a new line to be indentified as a list but adding it made things look weird too (a new line before the list but none after). This makes the list a "definition list" which boldens the title and avoids the new line weirdness at the cost of extra indenting. Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 --- M _posts/2016-11-15-weekly-update.md 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/31/5131/1 -- To view, visit http://gerrit.cloudera.org:8080/5131 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I78abc84ee430c0c73536ebc5691c39c47f836498 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: gh-pages Gerrit-Owner: David Ribeiro Alves
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Dan Burkert has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 2: (2 comments) Here's a patch to make this work with OS X: https://gist.github.com/anonymous/bc2d7fe7769cd50239ce1a27bec7d497 http://gerrit.cloudera.org:8080/#/c/5120/2//COMMIT_MSG Commit Message: PS2, Line 19: Impala has initialized the SASL library with no : call to sasl_set_mutex(), and then during Kudu initialization we set the : mutex functions to our own. Has Impala been fixed? If not, this patch still won't work correctly since it will fail when the mutex check is done. http://gerrit.cloudera.org:8080/#/c/5120/2/src/kudu/rpc/sasl_common.cc File src/kudu/rpc/sasl_common.cc: Line 203: LOG(WARNING) << "SASL was initialized prior to Kudu's initialization. Skipping " I think I would be in favor of making this a hard error. -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] [docs] Add krb5-devel to the SLES12 instructions
Hello Dan Burkert, Todd Lipcon, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/5130 to review the following change. Change subject: [docs] Add krb5-devel to the SLES12 instructions .. [docs] Add krb5-devel to the SLES12 instructions Change-Id: I9f98443a923edb6687427a5863e969883266bd30 --- M docs/installation.adoc 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/30/5130/1 -- To view, visit http://gerrit.cloudera.org:8080/5130 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9f98443a923edb6687427a5863e969883266bd30 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jean-Daniel CryansGerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1634. TS and master should delete tmp metadata files on startup
Adar Dembo has posted comments on this change. Change subject: KUDU-1634. TS and master should delete tmp metadata files on startup .. Patch Set 5: FYI, Maxim is working on a change to the infix in a follow-on patch so I'm going to merge this one as-is. -- To view, visit http://gerrit.cloudera.org:8080/5007 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I299e7b22c3f920430ff5d581cf7a507a83eb0101 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Maxim SmyatkinGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Maxim Smyatkin Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1634. TS and master should delete tmp metadata files on startup
Adar Dembo has submitted this change and it was merged. Change subject: KUDU-1634. TS and master should delete tmp metadata files on startup .. KUDU-1634. TS and master should delete tmp metadata files on startup Initially it was suggested that TS should delete tmp files from consensus-meta directory, but these leftovers can appear anywhere where atomic write with WritePBContainerToPath() is being used. For now, it is consensus metadata, block manager's data directory, instance metadata, etc. Also, it happens to Master server as well. Hence, I've decided to deal with it on FsManager level and scan all root paths for tmp files. It may slow startup a little bit, but I don't know any way around it because: a) it can't be done on background as it can remove the real tmp files this way; b) it would be nice to have a separate tmp directory, but it makes rename not atomic this way (because we can - and usually will - have root/wal dirs on different drives). Change-Id: I299e7b22c3f920430ff5d581cf7a507a83eb0101 Reviewed-on: http://gerrit.cloudera.org:8080/5007 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo--- M src/kudu/fs/fs_manager-test.cc M src/kudu/fs/fs_manager.cc M src/kudu/fs/fs_manager.h 3 files changed, 154 insertions(+), 6 deletions(-) Approvals: Adar Dembo: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5007 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I299e7b22c3f920430ff5d581cf7a507a83eb0101 Gerrit-PatchSet: 6 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Maxim Smyatkin Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Maxim Smyatkin Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [integration tests] added scan consistency test
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5084 to look at the new patch set (#2). Change subject: [integration tests] added scan consistency test .. [integration tests] added scan consistency test This is a small test to expose inconsistent reads when no timestamp is propagated by the client to tablet servers. This is in the context of KUDU-1679 Propagate timestamps for scans. Change-Id: I88e0d4e244be8abcef18e0b8317bacfa9bf272cb --- M src/kudu/client/client-test-util.cc M src/kudu/client/client-test-util.h M src/kudu/integration-tests/CMakeLists.txt A src/kudu/integration-tests/consistency-itest.cc 4 files changed, 386 insertions(+), 0 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/84/5084/2 -- To view, visit http://gerrit.cloudera.org:8080/5084 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I88e0d4e244be8abcef18e0b8317bacfa9bf272cb Gerrit-PatchSet: 2 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: David Ribeiro Alves Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] [Timestamp] use 'operator<' instead of ComesBefore
Dinesh Bhat has posted comments on this change. Change subject: [Timestamp] use 'operator<' instead of ComesBefore .. Patch Set 3: Code-Review+1 (1 comment) http://gerrit.cloudera.org:8080/#/c/5096/3/src/kudu/common/timestamp.h File src/kudu/common/timestamp.h: Line 109: return rhs < lhs; > Nope, this is how you define '>' operator using '<': you just swap argument oh yeah, I missed that :), thanks. -- To view, visit http://gerrit.cloudera.org:8080/5096 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I4a5b0f90e92f6de40822cfe872b417cf0c53121a Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Alexey SerbinGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dinesh Bhat Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Todd Lipcon has posted comments on this change. Change subject: KUDU-1749. Allow callers to disable SASL initialization .. Patch Set 3: Chatted offline with MJ from the Impala team. He asked me to make it a WARNING instead of returning a bad Status in the case that Impala inits SASL but doesn't initialize the SASL mutexes. Both Impala and Kudu through 1.0 neglected to set up mutexes and have never seen a problem, so we don't think it's 100% critical. And there's some fear it could cause an unexpected perf issue to enable it now. So, we want to stage the change -- this patch will just make it a WARNING and unbreak the integration, and then they'll separately test the sasl_set_mutex() addition separately. -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: No
[kudu-CR] KUDU-1749. Allow callers to disable SASL initialization
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5120 to look at the new patch set (#3). Change subject: KUDU-1749. Allow callers to disable SASL initialization .. KUDU-1749. Allow callers to disable SASL initialization The Kudu client makes use of SASL, as do other applications such as Impala that use the client. This means that both Kudu and those applications are expected to initialize SASL. The sasl_*_init() functions themselves are safe to call multiple times (they have no effect). However, sasl_set_mutex() is not safe to call multiple times, nor is it safe to call after another library has already begun using the SASL libraries. IMPALA-4479 describes a crash in SaslMutexUnlock() which is likely caused by this issue: Impala has initialized the SASL library with no call to sasl_set_mutex(), and then during Kudu initialization we set the mutex functions to our own. Then when we call sasl_dispose(), SASL tries to acquire an internal mutex which was previously allocated to a garbage value 0x1 by the built-in "fake" mutex implementation. This crashes when we attempt to access it using our real mutex implementation. The fix has a few parts: - we have a new API which allows embedders to disable initialization of SASL. - we try to auto-detect the case in which the client has fully initialized SASL including providing a mutex implementation. In that case, we skip initialization but log a warning that the caller should disable it explicitly. - if we detect that it's initialized but no mutex implementation is provided, we'll log a warning on first usage of SASL. - if they disable initialization but didn't initialize SASL on their own, we'll return an error on first usage. The one sketchy thing about this patch is that the SASL API doesn't give a 100% public way to determine its initialization state. However, it does export a symbol which we can import that provides the necessary information. This symbol is marked as an API, so we expect it to be stable enough for usage, at least across the range of supported operating systems. Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd --- M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/rpc/sasl_common.cc M src/kudu/rpc/sasl_common.h M src/kudu/rpc/sasl_rpc-test.cc 5 files changed, 183 insertions(+), 10 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/20/5120/3 -- To view, visit http://gerrit.cloudera.org:8080/5120 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I54d5ecfb2526852003f1ea249d1d2a8e6c0e91cd Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Alexey Serbin Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs Gerrit-Reviewer: Todd Lipcon
[kudu-CR] el6: fix krb5 realm workaround for static builds
Todd Lipcon has posted comments on this change. Change subject: el6: fix krb5 realm workaround for static builds .. Patch Set 4: (4 comments) http://gerrit.cloudera.org:8080/#/c/5100/4//COMMIT_MSG Commit Message: PS4, Line 32: important executables (tserver, master, and 'kudu' tool) > What about one-off executables like tpch, tpch_real_world, etc? And the cli yea, I'll rephrase this to say that it's the executables that are used by tests http://gerrit.cloudera.org:8080/#/c/5100/4/CMakeLists.txt File CMakeLists.txt: PS4, Line 945: Binaries which are used by tests need to link this in. > Can you update this to be very precise about what kind of binaries need it? Done Line 947: set(KRB5_REALM_OVERRIDE -Wl,--undefined=krb5_realm_override_loaded krb5_realm_override) > This line causes the macOS build to fail, but it appears if you wrap it in Done http://gerrit.cloudera.org:8080/#/c/5100/4/src/kudu/security/CMakeLists.txt File src/kudu/security/CMakeLists.txt: Line 22: target_link_libraries(krb5_realm_override glog dl) > I don't think we want to link libdl on macOS. Done -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 4 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon Gerrit-HasComments: Yes
[kudu-CR] el6: fix krb5 realm workaround for static builds
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5100 to look at the new patch set (#5). Change subject: el6: fix krb5 realm workaround for static builds .. el6: fix krb5 realm workaround for static builds Here's another attempt at enabling the workaround for the numeric realm problem on el6 (see ba2ae3de4a7c43ff2f5873e822410e066ea99667 for background). The previous attempt didn't succeed for static builds because we were setting LD_PRELOAD to the non-absolute path of the override library. This worked OK in debug builds because our binary RUNPATHs included the build/lib/ directory. Static builds didn't have such a RUNPATH and thus the LD_PRELOAD was unable to locate the specified shared object. The two options to fix this were (1) determine and specify an absolute path, or (2) build this workaround into all of our binaries rather than try to preload it at runtime. The issue with #1 is that, when we get to Java-based testing, it would have been inconvenient to determine the absolute path of the override library. In addition, it would make test binaries non-relocatable, which is somewhat of a hassle. So, this takes approach #2. The build incantations are a bit nasty. In order to make sure that the symbol shows up everywhere, and shows up before the krb5 library, and doesn't show up more than once (to avoid ODR violations), we have to manually add it to the link list for the the executables that need the override. This includes the tests (and thus the 'test_main' library) as well as any executables which are run by the tests ((tserver, master, and 'kudu' tool). In addition, we need to make sure that the linker doesn't entirely skip the override binary. I accomplished this using the '--undefined' linker flag. I tested this patch using both sasl_rpc-test and external_mini_cluster-test on an el6 box in both debug (dynamic linked) and release (static-linked) builds. I also fully built both build types to ensure there were no linker issues in unrelated tests. Change-Id: I050d03d58658b650891566b9f955c867b15731e0 --- M CMakeLists.txt M src/kudu/integration-tests/CMakeLists.txt M src/kudu/integration-tests/external_mini_cluster.cc M src/kudu/master/CMakeLists.txt M src/kudu/security/CMakeLists.txt R src/kudu/security/krb5_realm_override.cc M src/kudu/tools/CMakeLists.txt M src/kudu/tserver/CMakeLists.txt M src/kudu/util/CMakeLists.txt M src/kudu/util/test_main.cc M src/kudu/util/test_util.cc 11 files changed, 39 insertions(+), 38 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/00/5100/5 -- To view, visit http://gerrit.cloudera.org:8080/5100 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I050d03d58658b650891566b9f955c867b15731e0 Gerrit-PatchSet: 5 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd LipconGerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Dan Burkert Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon
[kudu-CR] KUDU-1722 - Range Partition Failure on UNIXTIME MICROS
Hello Kudu Jenkins, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/5119 to look at the new patch set (#3). Change subject: KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS .. KUDU-1722 - Range Partition Failure on UNIXTIME_MICROS Errors are returned when attempting to add range partition bounds for a unixtime_micros value when specifying bound types that are not the default. This is happening because the logic to convert the bounds to defaults (inclusive for Lower and exclusive for Upper) converts the UNIXTIME_MICROS value to an INT64. This patch addresses this issue and includes a test. Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb --- M src/kudu/client/client-test.cc M src/kudu/common/partition.cc 2 files changed, 39 insertions(+), 3 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/19/5119/3 -- To view, visit http://gerrit.cloudera.org:8080/5119 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I47d23d184a6b73c5c0cdd04519821c4e7eb53ecb Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Jordan BirdsellGerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Tidy Bot
[kudu-CR] KUDU-1634 (part 3). Changed tmp files' infix from ".tmp" to ".kudutmp"
Maxim Smyatkin has uploaded a new change for review. http://gerrit.cloudera.org:8080/5123 Change subject: KUDU-1634 (part 3). Changed tmp files' infix from ".tmp" to ".kudutmp" .. KUDU-1634 (part 3). Changed tmp files' infix from ".tmp" to ".kudutmp" As these ".tmp" strings were scattered over the code, I've tried to remove this duplication as well by defining the single kTmpInfix in pb_util.h. In a couple of places it led to string concatenations, but I suppose it's not that bad for overal performance? The necessity of moving from "tmp" to "kudutmp" is backed by the idea that we don't want to remove any user's data accidentally (see https://gerrit.cloudera.org/#/c/5007/). Change-Id: I52a794cc16d008570039d276ab32e6a26829bc53 --- M src/kudu/consensus/log.cc M src/kudu/consensus/log_util.cc M src/kudu/consensus/log_util.h M src/kudu/fs/fs_manager-test.cc M src/kudu/fs/fs_manager.cc M src/kudu/fs/fs_manager.h M src/kudu/integration-tests/external_mini_cluster_fs_inspector.cc M src/kudu/tserver/tablet_copy_client.cc M src/kudu/tserver/tablet_copy_session-test.cc M src/kudu/util/pb_util.cc M src/kudu/util/pb_util.h 11 files changed, 31 insertions(+), 29 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/23/5123/1 -- To view, visit http://gerrit.cloudera.org:8080/5123 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I52a794cc16d008570039d276ab32e6a26829bc53 Gerrit-PatchSet: 1 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Maxim Smyatkin