Sergey Shelukhin created HBASE-21564:
----------------------------------------

             Summary: race condition in WAL rolling
                 Key: HBASE-21564
                 URL: https://issues.apache.org/jira/browse/HBASE-21564
             Project: HBase
          Issue Type: Bug
            Reporter: Sergey Shelukhin
            Assignee: Sergey Shelukhin


Manifests at least with AsyncFsWriter.
There's a window after LogRoller replaces the writer in the WAL, but before it 
sets the rollLog boolean to false in the finally, where the WAL class can 
request another log roll (it can happen in particular when the logs are getting 
archived in the LogRoller thread, and there's high write volume causing the 
logs to roll quickly).
LogRoller will blindly reset the rollLog flag in finally and "forget" about 
this request.
AsyncWAL in turn never requests it again because its own rollRequested field is 
set and it expects a callback. Logs don't get rolled until a periodic roll is 
triggered after that.

The acknowledgment of roll requests by LogRoller should be atomic.





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to