You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2017/04/02 04:59:41 UTC

[jira] [Resolved] (HBASE-7326) SortedCopyOnWriteSet is not thread safe due to leaked TreeSet implementations

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

Chia-Ping Tsai resolved HBASE-7326.
-----------------------------------
    Resolution: Duplicate

> SortedCopyOnWriteSet is not thread safe due to leaked TreeSet implementations
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-7326
>                 URL: https://issues.apache.org/jira/browse/HBASE-7326
>             Project: HBase
>          Issue Type: Bug
>          Components: util
>            Reporter: Gary Helmling
>             Fix For: 2.0.0
>
>
> The SortedCopyOnWriteSet implementation uses an internal TreeSet that is copied and replaced on mutation operations.  However, in a few areas, SortedCopyOnWriteSet leaks references to the underlying TreeSet implementations, allowing for unsafe usage:
> * iterator()
> * subSet()
> * headSet()
> * tailSet()
> For Iterator.remove(), we can wrap in an implementation that throws UnsupportedOperationException.  For the sub set methods, we could return new SortedCopyOnWriteSet instances (which would not modify the parent set), or wrap with a new sub set implementation that safely allows modification of the parent set.
> To be clear, the current usage of SortedCopyOnWriteSet does not make use of any of these non-thread-safe methods, but the implementation should be fixed to be completely thread safe and prevent any new issues.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)