Uploaded image for project: 'Jackrabbit Oak'
  1. Jackrabbit Oak
  2. OAK-8832

Offline Compaction fails while erroneously accessing external blob

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.8.11, 1.22.0
    • 1.8.22, 1.22.4, 1.30.0
    • segment-tar
    • None

    Description

      Relevant stack trace:

      INFO  [2019-12-06 01:07:39,345] org.apache.jackrabbit.oak.segment.file.FileStore: TarMK GC #0: compacting root.
      java.lang.IllegalStateException: Attempt to read external blob with blobId [95c88847bd388c05fc332e737dda714630c11351d1949ffd1a03b7b09b92d1ea#71399] without specifying BlobStore
      INFO  [2019-12-06 01:07:39,753] org.apache.jackrabbit.oak.segment.file.FileStore: TarMK closed: /mnt/sandbox/tmp/1575594001228-0
      	at org.apache.jackrabbit.oak.segment.SegmentBlob.getBlob(SegmentBlob.java:248)
      	at org.apache.jackrabbit.oak.segment.SegmentBlob.getLength(SegmentBlob.java:257)
      	at org.apache.jackrabbit.oak.segment.SegmentBlob.length(SegmentBlob.java:109)
      	at org.apache.jackrabbit.oak.segment.SegmentBlob.equals(SegmentBlob.java:185)
      	at com.google.common.base.Objects.equal(Objects.java:52)
      	at org.apache.jackrabbit.oak.plugins.memory.AbstractPropertyState.equal(AbstractPropertyState.java:59)
      	at org.apache.jackrabbit.oak.segment.SegmentPropertyState.equals(SegmentPropertyState.java:249)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:664)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:558)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:598)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:598)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:422)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:598)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord$3.childNodeChanged(MapRecord.java:408)
      	at org.apache.jackrabbit.oak.segment.MapRecord$4.childNodeChanged(MapRecord.java:449)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:495)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:440)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:398)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:422)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:422)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:422)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.childNodeChanged(Compactor.java:217)
      	at org.apache.jackrabbit.oak.segment.CancelableDiff.childNodeChanged(CancelableDiff.java:85)
      	at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:495)
      	at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651)
      	at org.apache.jackrabbit.oak.segment.Compactor$CompactDiff.diff(Compactor.java:165)
      	at org.apache.jackrabbit.oak.segment.Compactor.compact(Compactor.java:123)
      	at org.apache.jackrabbit.oak.segment.CheckpointCompactor.compactWithCache(CheckpointCompactor.java:249)
      	at org.apache.jackrabbit.oak.segment.CheckpointCompactor.compact(CheckpointCompactor.java:172)
      	at org.apache.jackrabbit.oak.segment.CheckpointCompactor.compact(CheckpointCompactor.java:119)
      	at org.apache.jackrabbit.oak.segment.file.AbstractCompactionStrategy.compact(AbstractCompactionStrategy.java:150)
      	at org.apache.jackrabbit.oak.segment.file.FullCompactionStrategy.compact(FullCompactionStrategy.java:42)
      	at org.apache.jackrabbit.oak.segment.file.AbstractGarbageCollectionStrategy.compactFull(AbstractGarbageCollectionStrategy.java:77)
      	at org.apache.jackrabbit.oak.segment.file.SynchronizedGarbageCollectionStrategy.compactFull(SynchronizedGarbageCollectionStrategy.java:59)
      	at org.apache.jackrabbit.oak.segment.file.GarbageCollector.compactFull(GarbageCollector.java:296)
      	at org.apache.jackrabbit.oak.segment.file.FileStore.compactFull(FileStore.java:394)
      	at org.apache.jackrabbit.oak.segment.tool.Compact.run(Compact.java:274)
      	at com.adobe.granite.farmer.core.compaction.Compactor.compact(Compactor.java:85)
      	at com.adobe.granite.farmer.core.compaction.Compactor.compact(Compactor.java:47)
      	at com.adobe.granite.farmer.core.compaction.CompactorJob.execute(CompactorJob.java:77)
      	at com.adobe.granite.farmer.PublishFarmerApplication$RunnerJob.execute(PublishFarmerApplication.java:238)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      

      Attachments

        1. OAK-8832.patch
          1 kB
          Andrei Dulceanu
        2. OAK-8832-test.patch
          20 kB
          Andrei Dulceanu
        3. OAK-8832-02.patch
          21 kB
          Andrei Dulceanu

        Issue Links

          Activity

            People

              adulceanu Andrei Dulceanu
              adulceanu Andrei Dulceanu
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: