[ https://issues.apache.org/jira/browse/OAK-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14496104#comment-14496104 ]
Michael Dürig commented on OAK-2752: ------------------------------------ Patch looks good to me except for the removed line in {{clearSegmentIdTables}}. Could you elaborate why this is necessary? Thanks for the tests and the comments. Very helpful. > SegmentIdTable can sometimes hang when calling getSegmentId(msb, lsb) > --------------------------------------------------------------------- > > Key: OAK-2752 > URL: https://issues.apache.org/jira/browse/OAK-2752 > Project: Jackrabbit Oak > Issue Type: Bug > Components: oak-core > Affects Versions: 1.2 > Reporter: Will McGauley > Assignee: Thomas Mueller > Priority: Critical > Fix For: 1.0.13, 1.2.1 > > Attachments: OAK-2752-md.patch, OAK-2752-md2.patch, > OAK-2752-tm1.patch, OAK-2752-tm2.patch, OAK-2752-v2.patch, OAK-2752-v3.patch, > OAK-2752.patch > > > The while loop getSegmentId(msb, lsb) loops forever in the situation where > the segment id is not found. > Looping occurs from 'first' and loops to the end of the SegmentId references, > and then loops back to first. If the segmentid is not found in any of the > referenced items then looping continues past 'first' again and loops for > eternity through all the references. > See attached patch for possible fix to break out of the loop after getting > back to 'first' again. > note: I have tested this patch on my system and it seems to work, but I do > not know if the patch provides the best fix, I am a bit new to this code. > The most important part of the patch would be the break condition from the > loop so the loop does not continue after testing each reference -- This message was sent by Atlassian JIRA (v6.3.4#6332)