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

Andrei Dulceanu updated OAK-8832:
---------------------------------
    Attachment: OAK-8832-test.patch

> Offline Compaction fails while erroneously accessing external blob 
> -------------------------------------------------------------------
>
>                 Key: OAK-8832
>                 URL: https://issues.apache.org/jira/browse/OAK-8832
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segment-tar
>    Affects Versions: 1.10.0, 1.12.0, 1.8.11, 1.14.0, 1.16.0, 1.18.0, 1.20.0, 
> 1.22.0
>            Reporter: Andrei Dulceanu
>            Assignee: Andrei Dulceanu
>            Priority: Critical
>         Attachments: OAK-8832-test.patch, OAK-8832.patch
>
>
> Relevant stack trace:
> {noformat}
> 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)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to