[
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)