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)