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)

Reply via email to