[infinispan-issues] [JBoss JIRA] (ISPN-2330) JBossMarshaller uses wrong class resolver after stop/start
Scott Marlow (JIRA)
jira-events at lists.jboss.org
Mon Oct 15 19:49:01 EDT 2012
[ https://issues.jboss.org/browse/ISPN-2330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12726645#comment-12726645 ]
Scott Marlow commented on ISPN-2330:
------------------------------------
I attached new logs (anotherAS7clusteringtestServerLogs.zip) to help determine if I'm also hitting a form of ISPN-2330.
Search for "BANG org.infinispan.util.ImmutableListCopy case hit for" in jbossas-clustering-SYNC-tcp-0/standalone/log/server.log, as that is when we are actually going to marshall with the wrong class resolver (a ContextClassResolver). The first one reached is:
{quote}
16:55:38,187 INFO [stdout] (transport-thread-15) BANG org.infinispan.util.ImmutableListCopy case hit for AbstractClassResolver this=org.jboss.marshalling.ContextClassResolver at 2a73f761
{quote}
Search backwards for the constructor of ContextClassResolver at 2a73f761 and note the call stack.
{quote}
16:55:27,182 INFO [stdout] (transport-thread-15) ContextClassResolver ctor for org.jboss.marshalling.ContextClassResolver at 2a73f761
{quote}
Look ahead at the marshaller ctor, you will soon see it (same call stack as above originating from org.infinispan.marshall.jboss.AbstractJBossMarshaller$PerThreadInstanceHolder.getMarshaller(AbstractJBossMarshaller.java:348)):
{quote}
16:55:27,186 INFO [stdout] (transport-thread-15) xxx AbstractMarshaller ctor is using classresolver of org.jboss.marshalling.ContextClassResolver , this=org.infinispan.marshall.jboss.ExtendedRiverMarshaller at 3cecc1e1
{quote}
You will soon see the log message from the AbstractMarshaller ctor that shows the marshaller + class resolver together:
{quote}
16:55:27,188 INFO [stdout] (transport-thread-15) xxx AbstractMarshaller ctor using lassResolver org.jboss.marshalling.ContextClassResolver at 2a73f761 , this=org.infinispan.marshall.jboss.ExtendedRiverMarshaller at 3cecc1e1
{quote}
Repeating the first "BANG" from above, note that if find the thead dump below this line that is for thread transport-thread-15, it is triggered from org.jboss.marshalling.AbstractClassResolver.annotateClass and shows the same ContextClassResolver at 2a73f761 is being used.
{quote}
16:55:38,187 INFO [stdout] (transport-thread-15) BANG org.infinispan.util.ImmutableListCopy case hit for AbstractClassResolver this=org.jboss.marshalling.ContextClassResolver at 2a73f761
{quote}
> JBossMarshaller uses wrong class resolver after stop/start
> ----------------------------------------------------------
>
> Key: ISPN-2330
> URL: https://issues.jboss.org/browse/ISPN-2330
> Project: Infinispan
> Issue Type: Bug
> Components: Marshalling
> Affects Versions: 5.1.4.FINAL
> Reporter: Dennis Reed
> Assignee: Galder Zamarreño
> Priority: Critical
> Labels: jdg, jdg6
> Fix For: 5.2.0.CR1, 5.2.0.Final
>
> Attachments: anotherAS7clusteringtestServerLogs.zip, AS7clusteringtestServerLogs.zip
>
>
> org.infinispan.marshall.jboss.JBossMarshaller initializes the classResolver in its inject() method and clears it in its stop() method.
> If the cache is stopped and restarted (for example when redeploying a clustered web app in EAP), the wrong class resolver is used.
> Either the classResolver should not be removed in stop() (testing with it removed did not show any class leaking issues), or it should be reset in start().
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list