You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2015/04/13 16:03:12 UTC

[jira] [Created] (OAK-2757) Failed to read from tar file

Michael Dürig created OAK-2757:
----------------------------------

             Summary: Failed to read from tar file 
                 Key: OAK-2757
                 URL: https://issues.apache.org/jira/browse/OAK-2757
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: segmentmk
            Reporter: Michael Dürig
            Assignee: Michael Dürig
             Fix For: 1.3.0


Under some rare circumstances there is a warning in the logs:

{noformat}
11:57:47.375 WARN  [pool-1-thread-24] FileStore.java:865    Failed to read from tar file target/SegmentCompactionIT1331315031754226278dir/data01460a.tar
java.io.IOException: Stream Closed
        at java.io.RandomAccessFile.seek(Native Method) ~[na:1.7.0_75]
        at org.apache.jackrabbit.oak.plugins.segment.file.FileAccess$Random.read(FileAccess.java:105) ~[classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.file.TarReader.readEntry(TarReader.java:502) ~[classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readSegment(FileStore.java:860) ~[classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.getSegment(SegmentTracker.java:128) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentId.getSegment(SegmentId.java:108) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.Segment.readString(Segment.java:348) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.Segment.readPropsV11(Segment.java:476) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.Segment.loadTemplate(Segment.java:449) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.Segment.readTemplate(Segment.java:402) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.Segment.readTemplate(Segment.java:396) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:79) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getChildNodeCount(SegmentNodeState.java:357) [classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentCompactionIT$RandomReader.readRandomTree(SegmentCompactionIT.java:410) [test-classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentCompactionIT$RandomPropertyReader.call(SegmentCompactionIT.java:446) [test-classes/:na]
        at org.apache.jackrabbit.oak.plugins.segment.SegmentCompactionIT$RandomPropertyReader.call(SegmentCompactionIT.java:439) [test-classes/:na]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_75]
{noformat}

This happens due to a race between {{FileStore#readSegment}} reading from tar files and already removed by {{FileStore#flush}}. This isn't a problem as the tar file in question is still present at a newer generation and the {{FileStore}} will eventually read from that one. However the warning looks rather scaring and somewhat implies a defect. 

We should either lower the log level or remove the race. 



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