[ https://issues.apache.org/jira/browse/ZOOKEEPER-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13792910#comment-13792910 ]
Hadoop QA commented on ZOOKEEPER-1622: -------------------------------------- -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12608028/ZOOKEEPER-1622.patch against trunk revision 1531061. +1 @author. The patch does not contain any @author tags. -1 tests included. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1682//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1682//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1682//console This message is automatically generated. > session ids will be negative in the year 2022 > --------------------------------------------- > > Key: ZOOKEEPER-1622 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1622 > Project: ZooKeeper > Issue Type: Bug > Affects Versions: 3.4.0, 3.5.0 > Reporter: Eric Newton > Assignee: Eric Newton > Priority: Trivial > Fix For: 3.4.6, 3.5.0 > > Attachments: ZOOKEEPER-1622.patch > > > Someone decided to use a large number for their myid file. This cause > session ids to go negative, and our software (Apache Accumulo) did not handle > this very well. While diagnosing the problem, I noticed this in SessionImpl: > {noformat} > public static long initializeNextSession(long id) { > long nextSid = 0; > nextSid = (System.currentTimeMillis() << 24) >> 8; > nextSid = nextSid | (id <<56); > return nextSid; > } > {noformat} > When the 40th bit in System.currentTimeMillis() is a one, sign extension will > fill the upper 8 bytes of nextSid, and id will not make the session id > unique. I recommend changing the right shift to the logical shift: > {noformat} > public static long initializeNextSession(long id) { > long nextSid = 0; > nextSid = (System.currentTimeMillis() << 24) >>> 8; > nextSid = nextSid | (id <<56); > return nextSid; > } > {noformat} > But, we have until the year 2022 before we have to worry about it. -- This message was sent by Atlassian JIRA (v6.1#6144)