hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hiroshi Ikeda (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15292) Refined ZooKeeperWatcher to prevent ZooKeeper's callback while construction
Date Mon, 09 May 2016 09:25:13 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15276150#comment-15276150

Hiroshi Ikeda commented on HBASE-15292:

FYI It is already fixed by this patch but I just noticed that, it was more dangerous than
what I thought. ZooKeeperWatcher sets many fields (which are effectively final) while constructing,
and the variables had possibility not to be seen to other threads when the reference to the
RecoverableZooKeeper instance is seen without synchronization.

> Refined ZooKeeperWatcher to prevent ZooKeeper's callback while construction
> ---------------------------------------------------------------------------
>                 Key: HBASE-15292
>                 URL: https://issues.apache.org/jira/browse/HBASE-15292
>             Project: HBase
>          Issue Type: Bug
>          Components: Zookeeper
>            Reporter: Hiroshi Ikeda
>            Assignee: Hiroshi Ikeda
>            Priority: Minor
>             Fix For: 2.0.0, 1.3.0, 1.4.0
>         Attachments: HBASE-15292-V2.patch, HBASE-15292-V3.patch, HBASE-15292-V4.patch,
HBASE-15292-V5.patch, HBASE-15292.patch
> The existing code is not just messy but also contains a subtle bug of visibility due
to missing synchronization between threads.
> The root of the evil is that ZooKeeper uses a silly anti-pattern, starting a thread within
its constructor, and in practice all the developers are not allowed to use ZooKeeper correctly
without tedious code.

This message was sent by Atlassian JIRA

View raw message