Hello Kudu Jenkins,

I'd like you to reexamine a change.  Please visit

    http://gerrit.cloudera.org:8080/7374

to look at the new patch set (#8).

Change subject: [WIP]log block manager:mark container as 'read_only' after 
syncing error
......................................................................

[WIP]log block manager:mark container as 'read_only' after
syncing error

Currently, container in-memory accounting is updated only after
metadata get successfully fsync()ed. However, it is not safe to
do so, because the on-disk state may already contain partial or
complete data/metadata at this point.

For instance, when Close() block A in container a, SyncData()
is not successful, but metadata of block A is already on
disk. For merge compaction, the server does not crash for non-eio
error. Based on the existing behavior, the container will be
continued used, result in block A point to others' block data.

This patch marks container as 'read_only' if there is error
during syncing data and metdata while Close()/FlushDataAsync()
a block, to avoid further writes. It also adjusts existing fault
injection test to ensure test failure without the fix.

Change-Id: I15062b9d82c9cb563fb6bb2af7ec89da5f71e28f
---
M src/kudu/fs/block_manager-test.cc
M src/kudu/fs/log_block_manager.cc
2 files changed, 129 insertions(+), 62 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/74/7374/8
-- 
To view, visit http://gerrit.cloudera.org:8080/7374
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I15062b9d82c9cb563fb6bb2af7ec89da5f71e28f
Gerrit-PatchSet: 8
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Hao Hao <hao....@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Andrew Wong <aw...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <danburk...@apache.org>
Gerrit-Reviewer: Hao Hao <hao....@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Tidy Bot

Reply via email to