Rich Alberth created ACCUMULO-965: ------------------------------------- Summary: Zookeeper session ids created as unsigned long, parsed in ZooUtils.java as signed long Key: ACCUMULO-965 URL: https://issues.apache.org/jira/browse/ACCUMULO-965 Project: Accumulo Issue Type: Bug Components: start Affects Versions: 1.4.2 Environment: Hadoop 0.20, ZooKeeper 3.4.3, CentOS 2.6, x64 CPU, Java 1.6.0_24 Reporter: Rich Alberth Assignee: John Vines
Seems like this may be a bug. I looked at LiveTServerSet.assignTablet() it eventually calls Long.toHexString(). The javadoc for toHexString() says the following. {code}Returns a string representation of the <code>long</code> argument as an unsigned integer in base 16. {code} However, the method we are using to parse the Long can not handle unsigned longs greater than MAX_LONG. There does not seem to be a method in long that can parse the output of toHexString(). For example the following will fail, any negative number will fail. {code}Long.parseLong(Long.toHexString(-1), 16);{code} Original Stack Dump: {code} java.lang.NumberFormatException: For input string: "b53c3a3610ce0001" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Long.parseLong(Long.java:422) at org.apache.accumulo.core.zookeeper.ZooUtil$LockID.<init>(ZooUtil.java:64) at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.checkPermission(TabletServer.java:1794) at org.apache.accumulo.server.tabletserver.TabletServer$ThriftClientHandler.loadTablet(TabletServer.java:1814) at org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Processor.process(TabletClientService.java:2037) at org.apache.accumulo.server.util.TServerUtils$TimedProcessor.process(TServerUtils.java:154) at org.apache.thrift.server.TNonblockingServer$FrameBuffer.invoke(TNonblockingServer.java:631) at org.apache.accumulo.server.util.TServerUtils$THsHaServer$Invocation.run(TServerUtils.java:202) {code} -- 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