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

NPE in MarkSweepGarbageCollector.saveBatchToFile during Datastore GC with FileDataStore

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.20
    • 1.0.1, 1.1.0
    • blob
    • None

    Description

      During running a datastore garbage collection on a Jackrabbit 2 FileDataStore (org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore, see http://jackrabbit.apache.org/oak/docs/osgi_config.html) an NPE is thrown

      13.05.2014 17:50:16.944 *ERROR* [qtp1416657193-147] org.apache.jackrabbit.oak.management.ManagementOperation Blob garbage collection failed
      java.lang.RuntimeException: Error in retrieving references
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector$1.addReference(MarkSweepGarbageCollector.java:395)
      	at org.apache.jackrabbit.oak.plugins.segment.Segment.collectBlobReferences(Segment.java:248)
      	at org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.collectBlobReferences(SegmentTracker.java:178)
      	at org.apache.jackrabbit.oak.plugins.segment.SegmentBlobReferenceRetriever.collectReferences(SegmentBlobReferenceRetriever.java:38)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.iterateNodeTree(MarkSweepGarbageCollector.java:361)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.mark(MarkSweepGarbageCollector.java:201)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.markAndSweep(MarkSweepGarbageCollector.java:173)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.collectGarbage(MarkSweepGarbageCollector.java:149)
      	at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService$2.collectGarbage(SegmentNodeStoreService.java:185)
      	at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:68)
      	at org.apache.jackrabbit.oak.plugins.blob.BlobGC$1.call(BlobGC.java:64)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.NullPointerException: null
      	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:192)
      	at com.google.common.base.Joiner.toString(Joiner.java:436)
      	at com.google.common.base.Joiner.appendTo(Joiner.java:108)
      	at com.google.common.base.Joiner.appendTo(Joiner.java:152)
      	at com.google.common.base.Joiner.join(Joiner.java:193)
      	at com.google.common.base.Joiner.join(Joiner.java:183)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector.saveBatchToFile(MarkSweepGarbageCollector.java:317)
      	at org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector$1.addReference(MarkSweepGarbageCollector.java:391)
      	... 14 common frames omitted
      

      Attached you find the OSGi config for both the nodestore and the datastore.

      Attachments

        1. NodeAndDataStoreOsgiConfig.zip
          1 kB
          Konrad Windszus
        2. OAK-1817.patch
          1 kB
          Amit Jain

        Activity

          People

            chetanm Chetan Mehrotra
            kwin Konrad Windszus
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: