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

Michael Dürig resolved OAK-4865.
--------------------------------
    Resolution: Fixed

Fixed by setting the number of retained generations to a reasonable big value 
of 42. See http://svn.apache.org/viewvc?rev=1762794&view=rev

> Test failure: HeavyWriteIT
> --------------------------
>
>                 Key: OAK-4865
>                 URL: https://issues.apache.org/jira/browse/OAK-4865
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segment-tar
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>            Priority: Minor
>              Labels: test
>             Fix For: Segment Tar 0.0.14
>
>
> Said test sometimes fails with the following stack trace:
> {noformat}
> 09:46:40.900 ERROR [main] SegmentId.java:127                Segment not 
> found: 8399230c-9338-47e3-acf5-b92d326cf171. SegmentId 
> age=7473ms,gc-count=32,gc-status=success,store-generation=29,reclaim-predicate=(generation<=27),segment-generation27
> org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment 
> 8399230c-9338-47e3-acf5-b92d326cf171 not found
> at 
> org.apache.jackrabbit.oak.segment.file.FileStore$14.call(FileStore.java:1345) 
> ~[oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.file.FileStore$14.call(FileStore.java:1285) 
> ~[oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.load(CacheLIRS.java:1013) 
> ~[oak-core-1.5.8.jar:1.5.8]
> at org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:974) 
> ~[oak-core-1.5.8.jar:1.5.8]
> at org.apache.jackrabbit.oak.cache.CacheLIRS.get(CacheLIRS.java:285) 
> ~[oak-core-1.5.8.jar:1.5.8]
> at 
> org.apache.jackrabbit.oak.segment.SegmentCache.getSegment(SegmentCache.java:92)
>  ~[oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.file.FileStore.readSegment(FileStore.java:1285)
>  ~[oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:123) 
> ~[oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:70) 
> [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.SegmentNodeState.getStableIdBytes(SegmentNodeState.java:139)
>  [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.SegmentNodeState.getStableId(SegmentNodeState.java:122)
>  [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.SegmentNodeState.fastEquals(SegmentNodeState.java:633)
>  [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.SegmentNodeStore$Commit.execute(SegmentNodeStore.java:604)
>  [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:265)
>  [oak-segment-tar-0.0.13-SNAPSHOT.jar:na]
> at 
> org.apache.jackrabbit.oak.segment.HeavyWriteIT.heavyWrite(HeavyWriteIT.java:85)
>  [test-classes/:na]
> {noformat}
> This is a problem with the test, not a regression:
> {noformat}
> Segment not found: 8399230c-9338-47e3-acf5-b92d326cf171. SegmentId 
> age=7473ms,gc-count=32,gc-status=success,store-generation=29,reclaim-predicate=(generation<=27),segment-generation27
> {noformat}
> This means the missing segment was successfully gc'ed at GC #32. Its 
> generation was 27 while the store just got bumped to generation 29. This 
> causes a cleanup of all generations <= 27. 
> The test itself calls {{FileStore.gc()}} in quick succession while at the 
> same time writing to the store. This is likely to at some point cause a write 
> to be based on an already collected segment. I suggest to fix this by 
> increasing the number of retained generations to a sufficiently high value 
> (for this test). 
> On a side node, this issue (and being able to to a root cause analysis) 
> validates the additional logging that we added with OAK-2405! 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to