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

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

     [ https://issues.apache.org/jira/browse/GEODE-3580?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Galen O'Sullivan resolved GEODE-3580.
-------------------------------------
       Resolution: Fixed
    Fix Version/s: 1.3.0

I'm closing this because the test is fixed for now, but have filed GEODE-3649 to address the bigger issue of TypeRegistry staying open and potential issues with that and reconnect or starting a new cache.

> 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
>            Assignee: Galen O'Sullivan
>             Fix For: 1.3.0
>
>
> 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)