[ https://issues.apache.org/jira/browse/HBASE-16824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15583578#comment-15583578 ]
Enis Soztutar commented on HBASE-16824: --------------------------------------- Thanks Stack for taking a look. bq. Fix looks good but we have to keep a running counter? Would be good to keep this path obstacle-free. We can't just look at where the SyncRunners are at roll time and wait till they all have stalled w/ syncs cleared this.syncFutures.length <= 0 Yep, I wanted to do SyncFutures.size() <= 0, but we take from the syncFutures first, and then later on call writer.close(). So, syncFutures.size() < 0 does not guarantee that we won't call writer.flush(). Let me do a double check whether I can find a cleaner way. I also don't like the added AtomicLongs in the hot code path. > Writer.flush() can be called on already closed streams in WAL roll > ------------------------------------------------------------------ > > Key: HBASE-16824 > URL: https://issues.apache.org/jira/browse/HBASE-16824 > Project: HBase > Issue Type: Bug > Reporter: Atri Sharma > Assignee: Enis Soztutar > Attachments: hbase-16824_v1.patch > > > In https://issues.apache.org/jira/browse/HBASE-12074, we hit an error if an > async thread calls flush on a WAL record already closed as the WAL is being > rotated. This JIRA investigates if setting the new WAL record path as the > first operation during WAL rotation will fix the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)