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

Reply via email to