Andrew Wong has posted comments on this change. Change subject: open FS layout in presence of disk failure ......................................................................
Patch Set 3: (12 comments) http://gerrit.cloudera.org:8080/#/c/7784/3//COMMIT_MSG Commit Message: PS3, Line 15: failsto > fails to Done PS3, Line 15: all each > just "each" Done PS3, Line 15: failsto > fails to Done PS3, Line 15: all > s/all// Done http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/block_manager_util.h File src/kudu/fs/block_manager_util.h: PS3, Line 57: not OK() > 1. Why not just return an error? 1. Errors here would be ignored anyway. By adding this to the contract, we don't have to dirty the call-site with disk-handling code and we can keep the error handling (i.e. setting health_status_) internal. 2. Done PS3, Line 88: Status > nit: const Status& ? Done http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/data_dirs-test.cc File src/kudu/fs/data_dirs-test.cc: PS3, Line 244: ASSERT_DEATH({ : dd_manager_->MarkDataDirFailed(kNumDirs - 1); : }, ".*All data dirs have failed"); > I still don't like this change; I prefer that "library code" like the Direc Done http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/data_dirs.cc File src/kudu/fs/data_dirs.cc: Line 385: return Status::IOError("Could not create directory manager with disks failed"); > Maybe include root.second in the error message? Done Line 607: MarkDataDirFailed(uuid_idx, refresh_status.ToString()); > As future cleanup, it would be nice if MarkDataDirFailed() took a Status ra Fair point. I'll add a TODO in MarkDataDirFailed. http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/data_dirs.h File src/kudu/fs/data_dirs.h: PS3, Line 53: typedef std::pair<std::string, Status> CanonicalizedRoot; > I think it would be easier to understand the code that uses this if it was Done http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/fs_manager.h File src/kudu/fs/fs_manager.h: PS3, Line 302: Returned values > This comment is a bit confusing. I think it would make more sense to say it Done http://gerrit.cloudera.org:8080/#/c/7784/3/src/kudu/fs/log_block_manager.cc File src/kudu/fs/log_block_manager.cc: Line 1592: if (dd_manager_->IsDataDirFailed(uuid_idx)) { > If we stored the status passed to us in MarkDataDirFailed, we could return Added TODOs here and in MarkDataDirFailed(). I also wouldn't mind putting them in this patch, but for now, TODOs. -- To view, visit http://gerrit.cloudera.org:8080/7784 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ib2a1c824526ed52a6b90ddfbc735cecc4c491118 Gerrit-PatchSet: 3 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Andrew Wong <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Andrew Wong <[email protected]> Gerrit-Reviewer: David Ribeiro Alves <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Mike Percy <[email protected]> Gerrit-Reviewer: Tidy Bot Gerrit-HasComments: Yes
