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)