[
https://issues.apache.org/jira/browse/HBASE-3627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stack updated HBASE-3627:
-------------------------
Attachment: 3627.txt
Make sure that when we go to get data from a znode, that if doesn't exist
because its been hijacked, then make sure callers do not try to make use of
null data.
Added test for null to AssignmentManager. Same in ZKAssign.
Added some logging of hijacked znode scenario into OpenRegionHandler.
Fixed up javadoc so its clear that null data can come back in case where znode
is no longer present.
Added test that manufactures the missing znode.
> NPE in EventHandler when region already reassigned
> --------------------------------------------------
>
> Key: HBASE-3627
> URL: https://issues.apache.org/jira/browse/HBASE-3627
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.90.1
> Reporter: Jean-Daniel Cryans
> Assignee: stack
> Priority: Critical
> Fix For: 0.90.2
>
> Attachments: 3627.txt
>
>
> When a region takes too long to open, it will try to update the unassigned
> znode and will fail on an ugly NPE like this:
> {quote}
> DEBUG org.apache.hadoop.hbase.zookeeper.ZKAssign:
> regionserver:60020-0x22dc571dde04ca7 Attempting to transition node
> 0519dc3b62a569347526875048c37faa from RS_ZK_REGION_OPENING to
> RS_ZK_REGION_OPENING
> DEBUG org.apache.hadoop.hbase.zookeeper.ZKUtil:
> regionserver:60020-0x22dc571dde04ca7 Unable to get data of znode
> /hbase/unassigned/0519dc3b62a569347526875048c37faa because node does not
> exist (not necessarily an error)
> ERROR org.apache.hadoop.hbase.executor.EventHandler: Caught throwable while
> processing event M_RS_OPEN_REGION
> java.lang.NullPointerException
> at org.apache.hadoop.hbase.util.Writables.getWritable(Writables.java:75)
> at
> org.apache.hadoop.hbase.executor.RegionTransitionData.fromBytes(RegionTransitionData.java:198)
> at
> org.apache.hadoop.hbase.zookeeper.ZKAssign.transitionNode(ZKAssign.java:672)
> at
> org.apache.hadoop.hbase.zookeeper.ZKAssign.retransitionNodeOpening(ZKAssign.java:585)
> at
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.tickleOpening(OpenRegionHandler.java:322)
> at
> org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.process(OpenRegionHandler.java:97)
> at
> org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:151)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> {quote}
> I think the region server in this case should be closing the region ASAP.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira