[
https://jira.jboss.org/browse/ISPN-666?page=com.atlassian.jira.plugin.sys...
]
Galder Zamarreño commented on ISPN-666:
---------------------------------------
For future reference, he's further analysis I did on this JIRA:
-
https://jira.jboss.org/browse/ISPN-666: As said in the JIRA, there're a couple of
places from where JBoss Marshalling can return NotSerializableException when marshalling:
a) Within JBoss Marshalling, an instance of org.jboss.marshalling.util.IdentityIntMap
maintains the known classes for which JBoss Marshalling can provide its own efficient
marshalling, i.e. ArrayList...etc. Now, when this map is queried and the class cannot be
found (i.e. a user or Infinispan defined object is returned), the map should return -1.
Now, if the map ended up returning anything other than -1 for the case of user/Infinispan
objects, a NotSerializableException would be thrown. This would mean that somehow that
IdentityIntMap is getting corrupted.
b) The other place from which NSE can be thrown in this case would be if
ConstantObjectTable.getObjectWriter() returned null for MultipleRpcCommand. Now, for that
to happen, MultipleRpcCommand would need to be missing from writers map in
ConstantObjectTable. Now, ReplicationQueue, which is the one throwing this error, starts
(priority = 10) after VAM (priority = 9), so can't see how writers map could be
corrupted or half empty. Maybe another case of multiple cacheManager.getCache() ending up
with some weird writers map? Can't say.
MultipleRpcCommand being serialized ignoring the @Marshaller
------------------------------------------------------------
Key: ISPN-666
URL:
https://jira.jboss.org/browse/ISPN-666
Project: Infinispan
Issue Type: Bug
Components: Marshalling, RPC
Affects Versions: 4.2.0.ALPHA2
Reporter: Sanne Grinovero
Assignee: Galder Zamarreño
Priority: Critical
I'm getting the following stacktrace:
2010-09-23 00:10:28,232 ERROR [ReplicationQueue] (Scheduled-ReplicationQueueThread-1)
failed replicating 1 elements in replication queue
org.infinispan.CacheException: java.lang.RuntimeException: Failure to marshal
argument(s)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:122)
at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:403)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:100)
at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:128)
at org.infinispan.remoting.ReplicationQueueImpl.flush(ReplicationQueueImpl.java:126)
at org.infinispan.remoting.ReplicationQueueImpl$1.run(ReplicationQueueImpl.java:83)
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)
Caused by: java.lang.RuntimeException: Failure to marshal argument(s)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$ReplicationTask.marshallCall(CommandAwareRpcDispatcher.java:242)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$ReplicationTask.call(CommandAwareRpcDispatcher.java:266)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:120)
... 14 more
Caused by: org.infinispan.marshall.NotSerializableException:
org.infinispan.commands.remote.MultipleRpcCommand
Caused by: an exception which occurred:
in object org.infinispan.commands.remote.MultipleRpcCommand@dcf4f7b7
On the default cache, being configured as :
<default>
<clustering mode="replication">
<async useReplQueue="true" replQueueInterval="300"
asyncMarshalling="false" />
</clustering>
<locking isolationLevel="READ_COMMITTED"
concurrencyLevel="1000" lockAcquisitionTimeout="6000"
writeSkewCheck="false" useLockStriping="false" />
<jmxStatistics enabled="false" />
<eviction maxEntries="-1" strategy="NONE" />
<expiration maxIdle="-1" />
</default>
--
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