[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