[
https://issues.apache.org/jira/browse/HBASE-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nicolas Spiegelberg resolved HBASE-2593.
----------------------------------------
Resolution: Duplicate
IIRC
tlipcon: you can't append after you rename, cuz the lease follows through the
rename
[2:40pm] tlipcon: it still holds the lease
[2:40pm] tlipcon: changeLease(src, dst, dinfo); // update lease with
new filename
nspiegelberg: hmm. I think [we were] of the opinion that this caused a kill
lease rpc. looks like that's wrong
[2:46pm] nspiegelberg: or rather, that the rename didn't persist the lease and
append would then cause a kill lease
tlipcon: I think most importantly, it means that on a restart or lease expiry,
the NN side will have the correct record to find that thing in the directory
and finalize it, etc
[2:52pm] nspiegelberg: I think that was [the] intention. Hlog.new = no new
files, rename() = no new block, append() = wait for RS to give up
tlipcon: nspiegelberg: what was proposed before was: list files, find last
file, open for append. when that succeeds, list again, see if there any new ones
tlipcon: (this relies on writer not closing the prior file until the next one
has been created)
tlipcon: but I think we should collapse the two tickets - seems like the same
fix will fix all the problems
nspiegelberg: I think they're solving the same problem. Just trying to think
if we can make an active lease takeover vs current passive approaches
[3:02pm] tlipcon: nspiegelberg: yea, I don't know that there is any active
lease takeover opportunity really
> Race Between Log Splitting and Log Writing
> ------------------------------------------
>
> Key: HBASE-2593
> URL: https://issues.apache.org/jira/browse/HBASE-2593
> Project: Hadoop HBase
> Issue Type: Bug
> Components: master, regionserver
> Affects Versions: 0.21.0
> Reporter: Nicolas Spiegelberg
> Assignee: Nicolas Spiegelberg
> Priority: Critical
> Fix For: 0.21.0
>
>
> The current method for recovering the lease in HLog.splitLog() is flawed.
> Between the time that the regionserver is marked as dead and fs.append is
> issued, the regionserver could exit a GC pause and maintain the lease. In
> this case, fs.append() would continually fail. The master needs to not only
> recover the lease in splitLog but also break the lease so regionserver writes
> will no longer pass.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.