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)