[ 
https://issues.apache.org/jira/browse/OAK-2942?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig updated OAK-2942:
-------------------------------
    Fix Version/s: 1.3.3

> 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
>             Fix For: 1.3.3
>
>         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