You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Bruce Schuchardt (JIRA)" <ji...@apache.org> on 2017/09/07 22:46:00 UTC

[jira] [Created] (GEODE-3580) CI Failure: GemFireDeadlockDetectorDUnitTest

Bruce Schuchardt created GEODE-3580:
---------------------------------------

             Summary: CI Failure: GemFireDeadlockDetectorDUnitTest
                 Key: GEODE-3580
                 URL: https://issues.apache.org/jira/browse/GEODE-3580
             Project: Geode
          Issue Type: Bug
          Components: serialization
            Reporter: Bruce Schuchardt


This test is failing because the PDX type registry doesn't have a PDX serializer but thinks that it should.  When the PDX TypeRegistry is closed it leaves behind a static stating that it used to be open.  This static isn't reset until a new cache is created but this test doesn't use a cache - only a DistributedSystem.  When the deadlock detector executes its thread-state gathering function, which is Serializable, it hits code in InternalDataSerializer that looks for a PDXSerializer to handle the object and encounters this problem.

I was going to just change the test to create a cache but I think it's possible that this same problem could arise in the context of auto-reconnect.  Any attempt to serialize something during auto-reconnect that's not PDXSerializable, Sendable, DataSerializable or of a well known class  could cause this same exception to be thrown.

{noformat}
org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest > testDistributedDeadlockWithFunction FAILED
    java.lang.AssertionError: test is leaving behind an async invocation thread
        at org.junit.Assert.fail(Assert.java:88)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest.waitForAsyncInvocation(GemFireDeadlockDetectorDUnitTest.java:213)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest.testDistributedDeadlockWithFunction(GemFireDeadlockDetectorDUnitTest.java:144)

org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest > testDistributedDeadlockWithDLock FAILED
    org.apache.geode.cache.CacheClosedException: Could not PDX serialize because the cache was closed
        at org.apache.geode.pdx.internal.TypeRegistry.getPdxSerializer(TypeRegistry.java:331)
        at org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1536)
        at org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1437)
        at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2102)
        at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2936)
        at org.apache.geode.internal.cache.MemberFunctionStreamingMessage.toData(MemberFunctionStreamingMessage.java:308)
        at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2299)
        at org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1406)
        at org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:232)
        at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:377)
        at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:237)
        at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:603)
        at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1710)
        at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1900)
        at org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
        at org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3463)
        at org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3500)
        at org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1876)
        at org.apache.geode.internal.cache.execute.StreamingFunctionOperation.getFunctionResultFrom(StreamingFunctionOperation.java:108)
        at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:155)
        at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:201)
        at org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:395)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetector.find(GemFireDeadlockDetector.java:99)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest.testDistributedDeadlockWithDLock(GemFireDeadlockDetectorDUnitTest.java:192)

org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest > testNoDeadlock FAILED
    org.apache.geode.cache.CacheClosedException: Could not PDX serialize because the cache was closed
        at org.apache.geode.pdx.internal.TypeRegistry.getPdxSerializer(TypeRegistry.java:331)
        at org.apache.geode.internal.InternalDataSerializer.writeUserObject(InternalDataSerializer.java:1536)
        at org.apache.geode.internal.InternalDataSerializer.writeWellKnownObject(InternalDataSerializer.java:1437)
        at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2102)
        at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2936)
        at org.apache.geode.internal.cache.MemberFunctionStreamingMessage.toData(MemberFunctionStreamingMessage.java:308)
        at org.apache.geode.internal.InternalDataSerializer.invokeToData(InternalDataSerializer.java:2299)
        at org.apache.geode.internal.InternalDataSerializer.writeDSFID(InternalDataSerializer.java:1406)
        at org.apache.geode.internal.tcp.MsgStreamer.writeMessage(MsgStreamer.java:232)
        at org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:377)
        at org.apache.geode.distributed.internal.direct.DirectChannel.sendToOne(DirectChannel.java:237)
        at org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:603)
        at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1710)
        at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1900)
        at org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
        at org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3463)
        at org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3500)
        at org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1876)
        at org.apache.geode.internal.cache.execute.StreamingFunctionOperation.getFunctionResultFrom(StreamingFunctionOperation.java:108)
        at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:155)
        at org.apache.geode.internal.cache.execute.MemberFunctionExecutor.executeFunction(MemberFunctionExecutor.java:201)
        at org.apache.geode.internal.cache.execute.AbstractExecution.execute(AbstractExecution.java:395)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetector.find(GemFireDeadlockDetector.java:99)
        at org.apache.geode.distributed.internal.deadlock.GemFireDeadlockDetectorDUnitTest.testNoDeadlock(GemFireDeadlockDetectorDUnitTest.java:99)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)