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

Michael Dürig commented on OAK-2752:
------------------------------------

Let's keep changes minimal for this issue as we need to back port it to 1.0. 

As OAK-2654 greatly increased upgrade performance but introduced this 
regression I suggest we re-evaluate performance with OAK-2752-v3.patch, which 
fixes the regression. That patch is minimal in the sense that it just uses a 
more exact condition to determine whether a refresh is actually required but 
does not add any additional logic or refactorings on top of that. 



> 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-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)

Reply via email to