Darrel Schneider created GEODE-2240:
---------------------------------------

             Summary: unexpected NullPointerException from Tombstone service
                 Key: GEODE-2240
                 URL: https://issues.apache.org/jira/browse/GEODE-2240
             Project: Geode
          Issue Type: Bug
          Components: regions
            Reporter: Darrel Schneider


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.



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

Reply via email to