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

Ashish Singhi commented on HBASE-13901:
---------------------------------------

I was able to reproduce this issue successfully on my trunk cluster with 100 
threads where each thread create, disable and drop its own table.
This issue is possible when one thread is handling the NodeChildrenChanged 
event in ZKPermissionWatcher and another thread from behind deletes one of the 
znode which was already retrieved by ZKPermissionWatcher#nodeChildrenChanged. 
So accessing data of that znode will result in NPE.

Verified the patch manually with same client by running 5 times and then not 
able to reproduce this.
Please review.

> Error while calling watcher on creating and deleting an HBase table
> -------------------------------------------------------------------
>
>                 Key: HBASE-13901
>                 URL: https://issues.apache.org/jira/browse/HBASE-13901
>             Project: HBase
>          Issue Type: Bug
>            Reporter: neha
>            Assignee: Ashish Singhi
>            Priority: Minor
>             Fix For: 2.0.0, 0.98.14, 1.0.2, 1.2.0, 1.1.1
>
>         Attachments: HBASE-13901.patch
>
>
> [Scenario for Reproducing ] :
> 1. Create and delete 10 different HBase tables concurrently (10 threads 
> creating, disabling and deleting their own tables)
> 2. Check the HBase Master logs( Null Pointer Exceptions observed caused by 
> data race)
> {noformat}
> ERROR [main-EventThread] zookeeper.ClientCnxn: Error while calling watcher 
> java.lang.NullPointerException
>  at 
> org.apache.hadoop.hbase.zookeeper.ZKUtil$NodeAndData.isEmpty(ZKUtil.java:667)
>  at 
> org.apache.hadoop.hbase.security.access.ZKPermissionWatcher.refreshNodes(ZKPermissionWatcher.java:152)
>  at 
> org.apache.hadoop.hbase.security.access.ZKPermissionWatcher.nodeChildrenChanged(ZKPermissionWatcher.java:142)
>  at 
> org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.process(ZooKeeperWatcher.java:439)
>  at 
> org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:543)
>  at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:518)
> 2015-06-05 20:32:04,553 INFO  
> [B.defaultRpcServer.handler=24,queue=4,port=16000] 
> client.ConnectionManager$HConnectionImplementation: Closing zookeeper 
> sessionid=0x200541f1fd400c0
> 2015-06-05 20:32:04,561 INFO  
> [B.defaultRpcServer.handler=24,queue=4,port=16000] zookeeper.ZooKeeper: 
> Session: 0x200541f1fd400c0 closed
> 2015-06-05 20:32:04,561 INFO  
> [B.defaultRpcServer.handler=24,queue=4,port=16000-EventThread] 
> zookeeper.ClientCnxn: EventThread shut down
> 2015-06-05 20:32:04,631 INFO  
> [B.defaultRpcServer.handler=7,queue=2,port=16000] 
> client.ConnectionManager$HConnectionImplementation: Closing zookeeper 
> sessionid=0x200541f1fd400c2
> 2015-06-05 20:32:04,644 INFO  
> [B.defaultRpcServer.handler=7,queue=2,port=16000] zookeeper.ZooKeeper: 
> Session: 0x200541f1fd400c2 closed
> 2015-06-05 20:32:04,644 INFO  
> [B.defaultRpcServer.handler=7,queue=2,port=16000-EventThread] 
> zookeeper.ClientCnxn: EventThread shut down 
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to