Francesco Mari created OAK-2942:
-----------------------------------
Summary: IllegalStateException thrown in Segment.pos()
Key: OAK-2942
URL: https://issues.apache.org/jira/browse/OAK-2942
Project: Jackrabbit Oak
Issue Type: Bug
Components: segmentmk
Affects Versions: 1.2.2
Reporter: Francesco Mari
Attachments: ObservationBusyTest.java
When I tried to put Oak under stress to reproduce OAK-2731, I experienced an
{{IllegalStateException}} thrown by {{Segment.pos()}}. The full stack trace is
the following:
{noformat}
java.lang.IllegalStateException
at com.google.common.base.Preconditions.checkState(Preconditions.java:134)
at org.apache.jackrabbit.oak.plugins.segment.Segment.pos(Segment.java:194)
at
org.apache.jackrabbit.oak.plugins.segment.Segment.readRecordId(Segment.java:337)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:70)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:79)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:447)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.prepare(SegmentNodeStore.java:446)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.optimisticMerge(SegmentNodeStore.java:471)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.execute(SegmentNodeStore.java:527)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.merge(SegmentNodeStore.java:205)
at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:247)
at
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:341)
at
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:487)
at
org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:424)
at
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:268)
at
org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:421)
at
org.apache.jackrabbit.oak.jcr.observation.ObservationBusyTest$1.run(ObservationBusyTest.java:145)
... 6 more
{noformat}
In addition, the TarMK flushing thread throws an {{OutOfMemoryError}}:
{noformat}
Exception in thread "TarMK flush thread
[/var/folders/zw/qns3kln16ld99frxtp263c8c0000gn/T/junit2925373080495354479],
active since Mon Jun 01 18:48:19 CEST 2015, previous max duration 302ms"
java.lang.OutOfMemoryError: Java heap space
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.createNewBuffer(SegmentWriter.java:91)
at
org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.flush(SegmentWriter.java:240)
at
org.apache.jackrabbit.oak.plugins.segment.file.FileStore.flush(FileStore.java:596)
at
org.apache.jackrabbit.oak.plugins.segment.file.FileStore$1.run(FileStore.java:411)
at java.lang.Thread.run(Thread.java:695)
at
org.apache.jackrabbit.oak.plugins.segment.file.BackgroundThread.run(BackgroundThread.java:70)
{noformat}
The attached test case {{ObservationBusyTest.java}} allows me to reproduce
consistently the issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)