[kudu-CR] tablet service: improve error handling specificity
Mike Percy has submitted this change and it was merged. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. tablet_service: improve error handling specificity The error handling in TabletServiceImpl::HandleNewScanRequest() was convoluted. It's still not particularly inspired, but this patch makes several clarity and maintainability improvements: * Instead of making it the default error returned from HandleNewScanRequest(), localize the return of TabletServerErrorPB::MISMATCHED_SCHEMA to where Iterator::Init() returns an InvalidArgument, since that comes from a GetMappedReadProjection() failure. * Use an INVALID_SCAN_SPEC error for the case where the user specifies an unrecognized order mode, which is consistent with when the user specifies an unknown read mode or when the user specifies order mode ORDERED without specifying a snapshot scan. Also, update the comments in the .proto file to reflect the current usage. * Localize assignment of TabletServerErrorPB::Code as much as possible in HandleNewScanRequest() by plumbing an `error_code` pointer into HandleScanAtSnapshot() so that errors in that method can be specific to the type of problem observed. Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Reviewed-on: http://gerrit.cloudera.org:8080/12840 Tested-by: Kudu Jenkins Reviewed-by: Adar Dembo --- M src/kudu/tools/ksck_remote-test.cc M src/kudu/tserver/tablet_server-test-base.cc M src/kudu/tserver/tablet_server-test-base.h M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h M src/kudu/tserver/tserver.proto 7 files changed, 81 insertions(+), 59 deletions(-) Approvals: Kudu Jenkins: Verified Adar Dembo: Looks good to me, approved -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 5 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy
[kudu-CR] tablet service: improve error handling specificity
Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 4: Code-Review+2 -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 4 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Tue, 26 Mar 2019 22:19:49 + Gerrit-HasComments: No
[kudu-CR] tablet service: improve error handling specificity
Mike Percy has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 4: Staggeringly, these are all flakes: * KUDU-2621: Correctly deal with replicas with missing cmeta (alter_table-randomized-test) * KUDU-2723: TsLocationAssignmentITest.Basic is flaky * RemoteKsckTest.TestClusterWithLocation: known flake (I'm investigating to see if this has been filed, but it shows up on the flaky test dashboard) -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 4 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Tue, 26 Mar 2019 22:00:02 + Gerrit-HasComments: No
[kudu-CR] tablet service: improve error handling specificity
Mike Percy has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 4: > Staggeringly, these are all flakes: Oops, meant to post this on a different CR -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 4 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Tue, 26 Mar 2019 22:00:40 + Gerrit-HasComments: No
[kudu-CR] tablet service: improve error handling specificity
Hello Kudu Jenkins, Adar Dembo, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/12840 to look at the new patch set (#4). Change subject: tablet_service: improve error handling specificity .. tablet_service: improve error handling specificity The error handling in TabletServiceImpl::HandleNewScanRequest() was convoluted. It's still not particularly inspired, but this patch makes several clarity and maintainability improvements: * Instead of making it the default error returned from HandleNewScanRequest(), localize the return of TabletServerErrorPB::MISMATCHED_SCHEMA to where Iterator::Init() returns an InvalidArgument, since that comes from a GetMappedReadProjection() failure. * Use an INVALID_SCAN_SPEC error for the case where the user specifies an unrecognized order mode, which is consistent with when the user specifies an unknown read mode or when the user specifies order mode ORDERED without specifying a snapshot scan. Also, update the comments in the .proto file to reflect the current usage. * Localize assignment of TabletServerErrorPB::Code as much as possible in HandleNewScanRequest() by plumbing an `error_code` pointer into HandleScanAtSnapshot() so that errors in that method can be specific to the type of problem observed. Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 --- M src/kudu/tools/ksck_remote-test.cc M src/kudu/tserver/tablet_server-test-base.cc M src/kudu/tserver/tablet_server-test-base.h M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h M src/kudu/tserver/tserver.proto 7 files changed, 81 insertions(+), 59 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/12840/4 -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 4 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy
[kudu-CR] tablet service: improve error handling specificity
Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 3: Code-Review+2 The test failures look legit. -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 3 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Mon, 25 Mar 2019 23:15:37 + Gerrit-HasComments: No
[kudu-CR] tablet service: improve error handling specificity
Hello Kudu Jenkins, Adar Dembo, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/12840 to look at the new patch set (#3). Change subject: tablet_service: improve error handling specificity .. tablet_service: improve error handling specificity The error handling in TabletServiceImpl::HandleNewScanRequest() was convoluted. It's still not particularly inspired, but this patch makes several clarity and maintainability improvements: * Instead of making it the default error returned from HandleNewScanRequest(), localize the return of TabletServerErrorPB::MISMATCHED_SCHEMA to where Iterator::Init() returns an InvalidArgument, since that comes from a GetMappedReadProjection() failure. * Use an INVALID_SCAN_SPEC error for the case where the user specifies an unrecognized order mode, which is consistent with when the user specifies an unknown read mode or when the user specifies order mode ORDERED without specifying a snapshot scan. Also, update the comments in the .proto file to reflect the current usage. * Localize assignment of TabletServerErrorPB::Code as much as possible in HandleNewScanRequest() by plumbing an `error_code` pointer into HandleScanAtSnapshot() so that errors in that method can be specific to the type of problem observed. Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 --- M src/kudu/tserver/tablet_server-test-base.cc M src/kudu/tserver/tablet_server-test-base.h M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h M src/kudu/tserver/tserver.proto 6 files changed, 79 insertions(+), 57 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/12840/3 -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 3 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy
[kudu-CR] tablet service: improve error handling specificity
Mike Percy has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 2: (2 comments) http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc File src/kudu/tserver/tablet_service.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2402 PS1, Line 2402: Status s = PickAndVerifyTimestamp(scan_pb, tablet, &tmp_snap_timestamp); > Right, that's why I added _PREPEND_ in there (though there's no variant for Oh, I missed that part. The name starts to get so dang long. I also am not really convinced this is a prevalent-enough pattern to warrant a helper macro at this time, but would not be against adding it if we thought it would be used a lot. http://gerrit.cloudera.org:8080/#/c/12840/2/src/kudu/util/status.h File src/kudu/util/status.h: http://gerrit.cloudera.org:8080/#/c/12840/2/src/kudu/util/status.h@128 PS2, Line 128: #define RETURN_NOT_OK_CALLKUDU_RETURN_NOT_OK_CALL > Need to remove this. thanks -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Mon, 25 Mar 2019 22:25:55 + Gerrit-HasComments: Yes
[kudu-CR] tablet service: improve error handling specificity
Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 2: (2 comments) http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc File src/kudu/tserver/tablet_service.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2402 PS1, Line 2402: Status s = PickAndVerifyTimestamp(scan_pb, tablet, &tmp_snap_timestamp); > not really, because of the CloneAndPrepend() Right, that's why I added _PREPEND_ in there (though there's no variant for this right now). Anyway, probably not worth adding a variant for just this case, unless it's more prevalent across the code base. http://gerrit.cloudera.org:8080/#/c/12840/2/src/kudu/util/status.h File src/kudu/util/status.h: http://gerrit.cloudera.org:8080/#/c/12840/2/src/kudu/util/status.h@128 PS2, Line 128: #define RETURN_NOT_OK_CALLKUDU_RETURN_NOT_OK_CALL Need to remove this. -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Mon, 25 Mar 2019 21:27:26 + Gerrit-HasComments: Yes
[kudu-CR] tablet service: improve error handling specificity
Mike Percy has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 1: (6 comments) http://gerrit.cloudera.org:8080/#/c/12840/1//COMMIT_MSG Commit Message: http://gerrit.cloudera.org:8080/#/c/12840/1//COMMIT_MSG@20 PS1, Line 20: order mode > ORDERED here, right? Done http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test-base.h File src/kudu/tserver/tablet_server-test-base.h: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test-base.h@116 PS1, Line 116: void VerifyScanRequestFailure(const ScanRequestPB& req, > Maybe pass 'req' by value and std::move() from the two call-sites? There's no perf benefit to that because the RPC proxy currently takes a const ref. http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test.cc File src/kudu/tserver/tablet_server-test.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test.cc@2433 PS1, Line 2433: // Protobuf will parse an unrecognized enum value as UNKNOWN_ORDER_MODE. > Nit: this is meant to rationalize why L2434 is passing UNKNOWN_ORDER_MODE i Done http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc File src/kudu/tserver/tablet_service.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2160 PS1, Line 2160: [&] { *error_code = TabletServerErrorPB::INVALID_SNAPSHOT; }); > Couldn't you do this via the existing RETURN_NOT_OK_EVAL also? That's a good point. I wasn't sure it would work, but it turns out that a macro can treat an assignment as an argument so I'll just switch to that. http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2402 PS1, Line 2402: Status s = PickAndVerifyTimestamp(scan_pb, tablet, &tmp_snap_timestamp); > Seems like a good place to use RETURN_NOT_OK_PREPEND_{CALL,EVAL} :) not really, because of the CloneAndPrepend() http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2428 PS1, Line 2428: : tablet::MvccSnapshot snap; : tablet::MvccManager* mvcc_manager = tablet->mvcc_manager(); > Can these be scoped within block on L2431? No, but we can get rid of the shorthand mvcc_manager so I'll go ahead and do that. -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 1 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy Gerrit-Comment-Date: Mon, 25 Mar 2019 17:54:25 + Gerrit-HasComments: Yes
[kudu-CR] tablet service: improve error handling specificity
Hello Kudu Jenkins, Adar Dembo, I'd like you to reexamine a change. Please visit http://gerrit.cloudera.org:8080/12840 to look at the new patch set (#2). Change subject: tablet_service: improve error handling specificity .. tablet_service: improve error handling specificity The error handling in TabletServiceImpl::HandleNewScanRequest() was convoluted. It's still not particularly inspired, but this patch makes several clarity and maintainability improvements: * Instead of making it the default error returned from HandleNewScanRequest(), localize the return of TabletServerErrorPB::MISMATCHED_SCHEMA to where Iterator::Init() returns an InvalidArgument, since that comes from a GetMappedReadProjection() failure. * Use an INVALID_SCAN_SPEC error for the case where the user specifies an unrecognized order mode, which is consistent with when the user specifies an unknown read mode or when the user specifies order mode ORDERED without specifying a snapshot scan. Also, update the comments in the .proto file to reflect the current usage. * Localize assignment of TabletServerErrorPB::Code as much as possible in HandleNewScanRequest() by plumbing an `error_code` pointer into HandleScanAtSnapshot() so that errors in that method can be specific to the type of problem observed. Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 --- M src/kudu/tserver/tablet_server-test-base.cc M src/kudu/tserver/tablet_server-test-base.h M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h M src/kudu/tserver/tserver.proto M src/kudu/util/status.h 7 files changed, 80 insertions(+), 57 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/12840/2 -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Mike Percy
[kudu-CR] tablet service: improve error handling specificity
Adar Dembo has posted comments on this change. ( http://gerrit.cloudera.org:8080/12840 ) Change subject: tablet_service: improve error handling specificity .. Patch Set 1: (6 comments) http://gerrit.cloudera.org:8080/#/c/12840/1//COMMIT_MSG Commit Message: http://gerrit.cloudera.org:8080/#/c/12840/1//COMMIT_MSG@20 PS1, Line 20: order mode ORDERED here, right? http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test-base.h File src/kudu/tserver/tablet_server-test-base.h: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test-base.h@116 PS1, Line 116: void VerifyScanRequestFailure(const ScanRequestPB& req, Maybe pass 'req' by value and std::move() from the two call-sites? http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test.cc File src/kudu/tserver/tablet_server-test.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_server-test.cc@2433 PS1, Line 2433: // Protobuf will parse an unrecognized enum value as UNKNOWN_ORDER_MODE. Nit: this is meant to rationalize why L2434 is passing UNKNOWN_ORDER_MODE instead of something more exotic like 123? If so, not sure I see the need; explicitly passing UNKNOWN_ORDER_MODE seems like a fine test case in its own right, and the name of the test suggests that this is what the test is going to do. http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc File src/kudu/tserver/tablet_service.cc: http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2160 PS1, Line 2160: [&] { *error_code = TabletServerErrorPB::INVALID_SNAPSHOT; }); Couldn't you do this via the existing RETURN_NOT_OK_EVAL also? http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2402 PS1, Line 2402: Status s = PickAndVerifyTimestamp(scan_pb, tablet, &tmp_snap_timestamp); Seems like a good place to use RETURN_NOT_OK_PREPEND_{CALL,EVAL} :) http://gerrit.cloudera.org:8080/#/c/12840/1/src/kudu/tserver/tablet_service.cc@2428 PS1, Line 2428: : tablet::MvccSnapshot snap; : tablet::MvccManager* mvcc_manager = tablet->mvcc_manager(); Can these be scoped within block on L2431? -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 1 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Comment-Date: Sat, 23 Mar 2019 23:22:37 + Gerrit-HasComments: Yes
[kudu-CR] tablet service: improve error handling specificity
Hello Adar Dembo, I'd like you to do a code review. Please visit http://gerrit.cloudera.org:8080/12840 to review the following change. Change subject: tablet_service: improve error handling specificity .. tablet_service: improve error handling specificity The error handling in TabletServiceImpl::HandleNewScanRequest() was convoluted. It's still not particularly inspired, but this patch makes several clarity and maintainability improvements: * Instead of making it the default error returned from HandleNewScanRequest(), localize the return of TabletServerErrorPB::MISMATCHED_SCHEMA to where Iterator::Init() returns an InvalidArgument, since that comes from a GetMappedReadProjection() failure. * Use an INVALID_SCAN_SPEC error for the case where the user specifies an unrecognized order mode, which is consistent with when the user specifies an unknown read mode or when the user specifies order mode without specifying a snapshot scan. Also, update the comments in the .proto file to reflect the current usage. * Localize assignment of TabletServerErrorPB::Code as much as possible in HandleNewScanRequest() by plumbing an `error_code` pointer into HandleScanAtSnapshot() so that errors in that method can be specific to the type of problem observed. This patch also introduces a RETURN_NOT_OK() macro variant that takes a functor which is called on error before returning the non-OK Status. Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 --- M src/kudu/tserver/tablet_server-test-base.cc M src/kudu/tserver/tablet_server-test-base.h M src/kudu/tserver/tablet_server-test.cc M src/kudu/tserver/tablet_service.cc M src/kudu/tserver/tablet_service.h M src/kudu/tserver/tserver.proto M src/kudu/util/status.h 7 files changed, 89 insertions(+), 55 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/40/12840/1 -- To view, visit http://gerrit.cloudera.org:8080/12840 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1e6f7b01336e78ea8f37cb17b2c4485138e23581 Gerrit-Change-Number: 12840 Gerrit-PatchSet: 1 Gerrit-Owner: Mike Percy Gerrit-Reviewer: Adar Dembo