Adar Dembo has submitted this change and it was merged. Change subject: disk failure: error-handling macros in blocks ......................................................................
disk failure: error-handling macros in blocks This patch adds macros to trigger error-handling code in the event of disk failure during block IO. Block- and container-level functions that call env or cache functions (e.g. File::Append, FileCache::DeleteFile) that may result in disk failure can now run callbacks that, in the future, will fail and shutdown tablets in the failed directory, preventing further IO to the disk. Disk failures are indicated by one of EIO, ENODEV, ENXIO, and EROFS, although this list can be extended as needed in the future. As failure-handling relies on the addition of a handful of other features, the meat of the error-handling callback will come in a later patch. This patch only serves to surround block IO calls with macros. Failures elswhere (e.g. when reading instance or tablet metadata) will be handled in separate patches. This is part of a series of patches to handle disk failure. See section 2.2 of: https://docs.google.com/document/d/1zZk-vb_ETKUuePcZ9ZqoSK2oPvAAaEV1sjDXes8Pxgk/edit?usp=sharing Change-Id: Ia03bfb711a1b022d7516f4adb37fe9fb28ec949c Reviewed-on: http://gerrit.cloudera.org:8080/7030 Reviewed-by: Andrew Wong <[email protected]> Reviewed-by: Adar Dembo <[email protected]> Tested-by: Adar Dembo <[email protected]> --- M src/kudu/fs/block_manager.h M src/kudu/fs/error_manager.h M src/kudu/fs/file_block_manager.cc M src/kudu/fs/file_block_manager.h M src/kudu/fs/log_block_manager.cc M src/kudu/fs/log_block_manager.h M src/kudu/util/status.h 7 files changed, 257 insertions(+), 112 deletions(-) Approvals: Andrew Wong: Looks good to me, but someone else must approve Adar Dembo: Looks good to me, approved; Verified -- To view, visit http://gerrit.cloudera.org:8080/7030 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia03bfb711a1b022d7516f4adb37fe9fb28ec949c Gerrit-PatchSet: 22 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: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]>
