Alex Parvulescu created OAK-3172: ------------------------------------ Summary: 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: Sub-task Components: segmentmk Reporter: Alex Parvulescu Assignee: Alex Parvulescu
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)