Gary Helmling created HBASE-7326:
------------------------------------
Summary: 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
Affects Versions: 0.94.3, 0.92.2, 0.96.0
Reporter: Gary Helmling
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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira