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:56:00 UTC
[jira] [Commented] (GEODE-3580) CI Failure:
GemFireDeadlockDetectorDUnitTest
[ 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)