You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by GitBox <gi...@apache.org> on 2019/01/02 15:26:31 UTC

[GitHub] keith-turner opened a new pull request #866: Fix race condition when getting WALs for dead tserver

keith-turner opened a new pull request #866: Fix race condition when getting WALs for dead tserver
URL: https://github.com/apache/accumulo/pull/866
 
 
   When a tablet server dies the master gets its WALs from ZK.  In ZK there
   is a list of WALs per tserver. Each WAL in ZK has state that is either
   OPEN, CLOSED, or UNREFERENCED.  The master needs a list of OPEN and
   CLOSED logs for dead tservers.  While the master is trying to obtain
   this list its possible that the Accumulo GC may delete an UNREFERENCED
   WAL.  If this happened then the code before this commit would return an
   empty list of WALs. This could result in OPEN and CLOSED logs being
   ignored for recovery which could result in data loss.  This patch fixes
   the race condition.
   
   This bug was observed while looking into an exception I noticed while
   writing test for #860.  In the IT I was frequently calling another
   WalStateManager function and noticed NoNodeExceptions.  As a result I
   examined how the entire class handled NoNode race conditions and found
   this bug.  I noticed some other possible NoNode race condition, but do
   not think this these would occur with the current way the code is called.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services