Hiroshi Ikeda created HBASE-6651:
------------------------------------
Summary: Thread safety of HTablePool is doubtful
Key: HBASE-6651
URL: https://issues.apache.org/jira/browse/HBASE-6651
Project: HBase
Issue Type: Bug
Components: client
Affects Versions: 0.94.1
Reporter: Hiroshi Ikeda
Priority: Minor
There are some operations in HTablePool to access to PoolMap in multiple times
without any explict synchronization.
For example HTablePool.closeTablePool() calles PoolMap.values(), and calles
PoolMap.remove(). If other threads add new instances to the pool in the middle
of the calls, the new added instances might be dropped.
(HTablePool.closeTablePool() also has another problem that calling it by
multple threads causes accessing HTable by multiple threads.)
Moreover, PoolMap is not thread safe for the same reason.
For example PoolMap.put() calles ConcurrentMap.get() and calles
ConcurrentMap.put(). If other threads add a new instance to the concurent map
in the middle of the calls, the new instance might be dropped.
And also implementations of Pool have the same problems.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira