Uploaded image for project: 'JBoss Marshalling'
  1. JBoss Marshalling
  2. JBMAR-189

Race condition in SerializableClassRegistry.lookup

    XMLWordPrintable

Details

    Description

      There appears to be a race condition in the caching of the SerializableClass in org.jboss.marshalling.reflect.SerializableClassRegistry.lookup() such that an infinite loop in UnlockedHashMap.doPut() is triggered.

      The stacktrace is as follows:

      "http-executor-threads - 200" #426 prio=5 os_prio=0 tid=0x00007eff14cc1800 nid=0x6d43 runnable [0x00007efef4559000]
         java.lang.Thread.State: RUNNABLE
              at org.jboss.marshalling.reflect.UnlockedHashMap.doPut(UnlockedHashMap.java:201)
              at org.jboss.marshalling.reflect.UnlockedHashMap.putIfAbsent(UnlockedHashMap.java:300)
              at org.jboss.marshalling.reflect.SerializableClassRegistry.lookup(SerializableClassRegistry.java:92)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadClassDescriptor(RiverUnmarshaller.java:985)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadArray(RiverUnmarshaller.java:1591)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:329)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:224)
              at org.jboss.marshalling.river.RiverUnmarshaller.readFields(RiverUnmarshaller.java:1745)
              at org.jboss.marshalling.river.RiverUnmarshaller.doInitSerializable(RiverUnmarshaller.java:1658)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1285)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:276)
              at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:209)
              at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
              at org.jboss.ejb.client.remoting.MethodInvocationResponseHandler$MethodInvocationResultProducer.getResult(MethodInvocationResponseHandler.java:108)
              at org.jboss.ejb.client.EJBClientInvocationContext.getResult(EJBClientInvocationContext.java:276)
      

      Attachments

        Issue Links

          Activity

            People

              dlloyd@redhat.com David Lloyd
              daniel_atallah Daniel Atallah (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: