[ 
https://issues.apache.org/jira/browse/GEODE-3580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16157815#comment-16157815
 ] 

Bruce Schuchardt commented on GEODE-3580:
-----------------------------------------

It's easy to set up the test to fail when run stand-alone.  Replace the calls 
to getSystem() in the test with the following:

{code}
// simulate cache initialization
TypeRegistry.setPdxSerializer(mockSerializer);
// simulate cache close
TypeRegistry.close();
TypeRegistry.setPdxSerializer(null);

getSystem();
{code}

The test will fail with the same exception.

> 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)

Reply via email to