[
https://jira.jboss.org/browse/ISPN-699?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreño commented on ISPN-699:
---------------------------------------
I've run the test case attached to
https://jira.jboss.org/secure/attachment/12337734/infinispan-hang.tar.gz and after running
it a fair few times, I finally was able to reproduce it, i.e.:
2010-10-19 11:58:17,774 ERROR [Scheduled-eviction-thread-0] (FileCacheStore.java:184) -
Error while reading from file:
/Users/z/Dropbox/JBoss/infinispan/jira/697/infinispan-hang/./store/Users/-202784597
java.lang.NullPointerException
at
org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)
At this point, I've made a clone of the Users store and tried to read that particular
user from another program to verify whether the issue was due to the data that is actually
stored being corrupt. The test run fine which indicates that there's no storage
corruption. Instead, it seems like there's a race condition at read time that ends up
with wrong byte being read.
As a FYI, the byte returned should always be 42 which is the id for
org.infinispan.loaders.bucket.Bucket. Now, we have to remember that reading/writing
to/from a bucket is lock protected, so I can't see right now how this could be the
result of concurrent read and write of same bucket. Could it be the result of two
concurrent reads maybe? Hmmm, sounds odd.
Anyway, I'm gonna add some extra logging and try to replicate the issue again.
occasional NullPointerException on unmarshalling in test application
--------------------------------------------------------------------
Key: ISPN-699
URL:
https://jira.jboss.org/browse/ISPN-699
Project: Infinispan
Issue Type: Sub-task
Components: Marshalling
Affects Versions: 4.0.0.Final, 4.1.0.Final, 4.2.0.ALPHA2
Reporter: Sanne Grinovero
Assignee: Galder Zamarreño
Fix For: 4.2.0.BETA1, 4.2.0.Final
See the parent issue ISPN-697 , which contains more details and an application which can
occasionally reproduce the NPE.
2010-10-11 15:55:27,305 ERROR [Scheduled-eviction-thread-0] (FileCacheStore.java:184) -
Error while reading from file: /home/cching/dev/infinispan-hang/./store/Users/-202784536
java.lang.NullPointerException
at
org.infinispan.marshall.jboss.ConstantObjectTable.readObject(ConstantObjectTable.java:253)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:357)
at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:207)
at org.jboss.marshalling.AbstractUnmarshaller.readObject(AbstractUnmarshaller.java:85)
at
org.infinispan.marshall.jboss.GenericJBossMarshaller.objectFromObjectStream(GenericJBossMarshaller.java:162)
at
org.infinispan.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:179)
at
org.infinispan.loaders.file.FileCacheStore.objectFromInputStreamInReentrantMode(FileCacheStore.java:262)
at org.infinispan.loaders.file.FileCacheStore.loadBucket(FileCacheStore.java:181)
at org.infinispan.loaders.file.FileCacheStore.purgeInternal(FileCacheStore.java:161)
at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:84)
at
org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:47)
at org.infinispan.loaders.AbstractCacheStore.purgeExpired(AbstractCacheStore.java:81)
at
org.infinispan.eviction.EvictionManagerImpl.processEviction(EvictionManagerImpl.java:115)
at
org.infinispan.eviction.EvictionManagerImpl$ScheduledTask.run(EvictionManagerImpl.java:136)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira