Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-2240

unexpected NullPointerException from Tombstone service

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.1.0
    • regions
    • None

    Description

      A test failed and the logs were found to be full of NPEs from the tombstone service:[severe 2016/12/20 02:04:35.605 UTC dataStoregemfire7_rs-StorageBTTest-2016-12-19-23-35-42-client-14_19508 <Replicate/Partition Region Garbage Collector> tid=0x44] GemFire garbage collection service encountered an unexpected exception
      java.lang.NullPointerException
      at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.lambda$purgeObsoleteTombstones$1(TombstoneService.java:938)
      at org.apache.geode.internal.cache.TombstoneService$ReplicateTombstoneSweeper.removeExpiredIf(TombstoneService.java:479)
      at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.removeIf(TombstoneService.java:823)
      at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.purgeObsoleteTombstones(TombstoneService.java:937)
      at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.run(TombstoneService.java:880)
      at java.lang.Thread.run(Thread.java:745)

      [severe 2016/12/20 02:05:45.987 UTC dataStoregemfire7_rs-StorageBTTest-2016-12-19-23-35-42-client-14_19508 <Replicate/Partition Region Garbage Collector> tid=0x44] GemFire garbage collection service encountered an unexpected exception
      java.lang.NullPointerException
      at org.apache.geode.internal.cache.TombstoneService$ReplicateTombstoneSweeper.expireBatch(TombstoneService.java:524)
      at org.apache.geode.internal.cache.TombstoneService$ReplicateTombstoneSweeper.checkExpiredTombstoneGC(TombstoneService.java:594)
      at org.apache.geode.internal.cache.TombstoneService$TombstoneSweeper.run(TombstoneService.java:878)
      at java.lang.Thread.run(Thread.java:745)

      Both of these stacks indicate that the "expiredTombstones" ArrayList somehow has nulls in it. It is an ArrayList of Tombstone instances and the only code that adds to it first tests that the item it is adding is not null. The only other modify operation done on it is to remove an item.
      Perhaps unsafe concurrent access is happening causing this code to see nulls.

      Attachments

        Activity

          People

            dschneider Darrel Schneider
            dschneider Darrel Schneider
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: