[
https://issues.apache.org/jira/browse/OAK-2045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14108923#comment-14108923
]
Alex Parvulescu commented on OAK-2045:
--------------------------------------
bq. For this I need to drop the segments cache in the SegmentTracker as it was
holding a reference to SegmentId
I think it's ok to drop this cache, it will get recreated as needed. I see no
other way around the fact that it keeps a hard reference. My original approach
was to drop it from the #setCompactionMap method.
> Long running JCR session prevent live cleanup in Segment FileStore
> ------------------------------------------------------------------
>
> Key: OAK-2045
> URL: https://issues.apache.org/jira/browse/OAK-2045
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: segmentmk
> Reporter: Chetan Mehrotra
> Assignee: Chetan Mehrotra
> Fix For: 1.1
>
> Attachments: OAK-2045-segment-fault-approach.patch,
> OAK-2045-test-fix.patch
>
>
> Cleanup operation in SegmentNodeStore detects the un referenced garbage and
> clean it up. To determine the reference validity it starts with an initial
> set of SegmentId which have a live java reference.
> This works fine for simple setup but when Oak repository is used in an
> application (like Sling) where application code can create long running
> session (for observation) then such session are bound to old NodeState at
> time of startup. Such references prevent the cleanup logic to remove older
> revisions while system is running. Such revisions can only be removed via an
> offline compaction-> cleanup.
> Need to find out a way where we can _migrate_ such old NodeState references
> to newer revisions
--
This message was sent by Atlassian JIRA
(v6.2#6252)