Hello Will Berkeley, Mike Percy, Kudu Jenkins, Hao Hao, I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/8767 to look at the new patch set (#4). Change subject: tablet_copy_client-test: have servers use same number of dirs ...................................................................... tablet_copy_client-test: have servers use same number of dirs The TestDownloadBlock copies a block from one server to another. Before doing so, the copy client ensures that the block it's about to copy over does not exist in the local FS, and doing so entails doing a block lookup. The problem is that, since 8a81f4ff18ee30951a25bab247fa5a3c20058e49, the client's local FS has two data directories, while the source tablet server has three. When running with --block_manager=file, block IDs are prefixed with the index of the directory they are in. This is problematic because for safety, block lookups DCHECK that the index of the block makes sense with the number of data directories. Given the mentioned configurations, when looking up a block in the third directory from the source tserver, the local FS would hit the DCHECK: F1205 10:17:50.160812 1999118336 data_dirs.cc:953] Check failed: uuid_idx < data_dirs_.size() (2 vs. 2) *** Check failure stack trace: *** *** Aborted at 1512497870 (unix time) try "date -d @1512497870" if you are using GNU date *** PC: @ 0x7fff99d2df06 __pthread_kill *** SIGABRT (@0x7fff99d2df06) received by PID 53106 (TID 0x7fff77282000) stack trace: *** @ 0x7fff86cea52a _sigtramp @ 0x2 (unknown) @ 0x7fff8acd86df abort @ 0x108b3d049 google::logging_fail() @ 0x108b3d03a google::LogMessage::Fail() @ 0x108b3c129 google::LogMessage::SendToLog() @ 0x108b3c7cd google::LogMessage::Flush() @ 0x108b405ef google::LogMessageFatal::~LogMessageFatal() @ 0x108b3d3d9 google::LogMessageFatal::~LogMessageFatal() @ 0x10719e0b1 kudu::fs::DataDirManager::FindDataDirByUuidIndex() @ 0x1071dbc5f kudu::fs::FileBlockManager::FindBlockPath() @ 0x1071e234a kudu::fs::FileBlockManager::OpenBlock() @ 0x1072019dc kudu::FsManager::OpenBlock() @ 0x104666ee1 kudu::tserver::TabletCopyTest::ReadLocalBlockFile() @ 0x104665eda kudu::tserver::TabletCopyClientTest_TestDownloadBlock_Test::TestBody() @ 0x10817ea5a testing::internal::HandleExceptionsInMethodIfSupported<>() @ 0x10817e94f testing::Test::Run() @ 0x10817f94e testing::TestInfo::Run() @ 0x108180303 testing::TestCase::Run() @ 0x10818774b testing::internal::UnitTestImpl::RunAllTests() @ 0x108187303 testing::internal::HandleExceptionsInMethodIfSupported<>() @ 0x10818721e testing::UnitTest::Run() @ 0x1047939e1 RUN_ALL_TESTS() @ 0x1047935fd main @ 0x7fff913265ad start @ 0x1 (unknown) The solution in this patch is to make the number of directories in the local FS equal the number of directories in the remote tserver. A slight change to TestDownloadAllBlocks has also been made to accommodate the change in directories. Change-Id: I4c65a10a2a0f32ad0ecb467073dbec9965d2b093 --- M src/kudu/tserver/tablet_copy-test-base.h M src/kudu/tserver/tablet_copy_client-test.cc 2 files changed, 15 insertions(+), 6 deletions(-) git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/67/8767/4 -- To view, visit http://gerrit.cloudera.org:8080/8767 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4c65a10a2a0f32ad0ecb467073dbec9965d2b093 Gerrit-Change-Number: 8767 Gerrit-PatchSet: 4 Gerrit-Owner: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com> Gerrit-Reviewer: Hao Hao <hao....@cloudera.com> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <mpe...@apache.org> Gerrit-Reviewer: Will Berkeley <wdberke...@gmail.com>