jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Updated] (OAK-3172) Unreleased closed sessions can keep a root reference from getting collected
Date Fri, 11 Dec 2015 11:24:11 GMT

     [ https://issues.apache.org/jira/browse/OAK-3172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Michael Dürig updated OAK-3172:
-------------------------------
    Labels: candidate_oak_1_0 candidate_oak_1_2 compaction gc  (was: compaction gc)

> Unreleased closed sessions can keep a root reference from getting collected
> ---------------------------------------------------------------------------
>
>                 Key: OAK-3172
>                 URL: https://issues.apache.org/jira/browse/OAK-3172
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: segmentmk
>            Reporter: Alex Parvulescu
>            Assignee: Alex Parvulescu
>              Labels: candidate_oak_1_0, candidate_oak_1_2, compaction, gc
>             Fix For: 1.3.8
>
>         Attachments: OAK-3172.patch
>
>
> It looks like even if a component logs out a session, but keeps a reference to it around
this will still prevent GC from running, as the session will wrap a _root_ reference pointing
to the moment/revision when the session was last accessed.
> Extract from jvisualvm:
> {code}
> this     - value: org.apache.jackrabbit.oak.plugins.segment.SegmentId #505
>  <- [106]     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentId[], value:
org.apache.jackrabbit.oak.plugins.segment.SegmentId #505
>   <- refids     - class: org.apache.jackrabbit.oak.plugins.segment.Segment, value:
org.apache.jackrabbit.oak.plugins.segment.SegmentId[] #67 (120 items)
>    <- segment     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentId, value:
org.apache.jackrabbit.oak.plugins.segment.Segment #81
>     <- [124]     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentId[], value:
org.apache.jackrabbit.oak.plugins.segment.SegmentId #496
>      <- refids     - class: org.apache.jackrabbit.oak.plugins.segment.Segment, value:
org.apache.jackrabbit.oak.plugins.segment.SegmentId[] #17 (204 items)
>       <- segment     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentId,
value: org.apache.jackrabbit.oak.plugins.segment.Segment #17
>        <- segmentId     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState,
value: org.apache.jackrabbit.oak.plugins.segment.SegmentId #551
>         <- base     - class: org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder,
value: org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState #5557
>          <- builder     - class: org.apache.jackrabbit.oak.core.MutableRoot, value:
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder #5652
>           <- root     - class: org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1,
value: org.apache.jackrabbit.oak.core.MutableRoot #151
>            <- sd     - class: com.adobe.granite.repository.impl.CRX3SessionImpl, value:
org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1 #117
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message