[
https://jira.jboss.org/browse/ISPN-699?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreño commented on ISPN-699:
---------------------------------------
A few things to consider doing here:
1) Why is startLatch needed in EvictionManagerImpl? Let's get rid of it.
2) The processEviction code should protect against isInterrupted() to avoid doing any
further work if eviction has been cancelled
3) Also, a quick check for InterruptedException shows that when purgeInternal is called,
FCS tries to acquire a global lock, but any IE is swallowed. On top of that, FCS does not
check whether the lock was actually acquired.
4) COT should be enhanced to have a volatile stopped boolean variable so that we can find
out when the marshaller has been stopped but someone is requesting to read an object. At
this point the COT could log a thread dump programmatically (relatively easy to do),
because this would hint of any other parts that might be swallowing interruption at
cancellation. Otherwise, without this thread dump, you'd need to rely on users getting
the timing right. Besides, this is not expected to be the common case, so don't expect
huge logs as a result of this and could be logged at debug/trace level.
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
Attachments: 697ispn-infinispan-readersclearedbeforeeviction.log
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