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

Andy Jefferson updated HBASE-3692:
----------------------------------

    Attachment: test_datanucleus.zip

I've also seen this when accessing HBase through DataNucleus (JDO or JPA APIs). 
Never occurs on 0.90.0 (or earlier), yet switching to 0.90.1 through 0.90.4 the 
same testcase fails. Apologies that I haven't been able to narrow it down to 
the precise HBase calls, but am attaching a testcase that uses 
DataNucleus+HBase if that is of use (it's as minimal as I can get) - understand 
totally if you don't want to have 3rd party libs in a testcase, just that it 
does reproduce the problem (can you see what HBase API calls are made from the 
log, for example?).

Stack trace with hbase-0.90.3 and hadoop-core-1.0.0 is as follows 

java.util.concurrent.RejectedExecutionException
        at 
java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
        at 
java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
        at 
java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
        at 
java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatch(HConnectionManager.java:1143)
        at 
org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.processBatchOfPuts(HConnectionManager.java:1241)
        at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:826)
        at org.apache.hadoop.hbase.client.HTable.doPut(HTable.java:682)
        at org.apache.hadoop.hbase.client.HTable.put(HTable.java:667)
        at 
org.datanucleus.store.hbase.HBasePersistenceHandler.insertObject(HBasePersistenceHandler.java:274)

i.e HTable.put() is called. Note this is *single* threaded.

Test is a Maven project, and simply type "mvn clean compile exec:java" to 
execute it.
                
> Handle RejectedExecutionException in HTable
> -------------------------------------------
>
>                 Key: HBASE-3692
>                 URL: https://issues.apache.org/jira/browse/HBASE-3692
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.90.1
>            Reporter: Jean-Daniel Cryans
>         Attachments: test_datanucleus.zip
>
>
> A user on IRC yesterday had an issue with RejectedExecutionException coming 
> out of HTable sometimes. Apart from being very confusing to the user as it 
> comes with no message at all, it exposes the HTable internals. 
> I think we should handle it and instead throw something like 
> DontUseHTableInMultipleThreadsException or something more clever. In his 
> case, the user had a HTable leak with the pool that he was able to figure out 
> once I told him what to look for.
> It could be an unchecked exception and we could consider adding in 0.90 but 
> marking for 0.92 at the moment.

--
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

        

Reply via email to