You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Andrew Kyle Purtell (Jira)" <ji...@apache.org> on 2022/07/01 20:54:00 UTC

[jira] [Updated] (HBASE-14222) Improve DrainBarrier

     [ https://issues.apache.org/jira/browse/HBASE-14222?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Kyle Purtell updated HBASE-14222:
----------------------------------------
      Assignee:     (was: Hiroshi Ikeda)
    Resolution: Abandoned
        Status: Resolved  (was: Patch Available)

> Improve DrainBarrier
> --------------------
>
>                 Key: HBASE-14222
>                 URL: https://issues.apache.org/jira/browse/HBASE-14222
>             Project: HBase
>          Issue Type: Bug
>          Components: util
>            Reporter: Hiroshi Ikeda
>            Priority: Minor
>         Attachments: HBASE-14222-V2.patch, HBASE-14222-V2.patch, HBASE-14222-V2.patch, HBASE-14222.patch
>
>
> 1. {{DrainBarrier.stopAndDrainOps}} may wait forever if {{DrainBarrier.endOp}} changes its state and calls {{Object.notifyAll}} just before {{stopAndDrainOps}} enters the synchronized block to call {{Object.wait}}. Moreover, {{Object.wait}} may wake up false-positively, and {{stopAndDrainOps}} may break the block before outstanding operations are complete.
> 2. Some tests for {{DrainBarrier}} catch and ignore {{AssertionError}} explicitly thrown JUnit's {{fail}} method.
> The implementation of {{DrainBarrier}} is a little complex, and I'll fix and refactor it.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)