You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Swapnil Bawaskar (JIRA)" <ji...@apache.org> on 2018/04/09 22:37:20 UTC

[jira] [Closed] (GEODE-4285) Temporary failure with "Unable to determine PDXType" using WAN

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

Swapnil Bawaskar closed GEODE-4285.
-----------------------------------

> Temporary failure with "Unable to determine PDXType" using WAN
> --------------------------------------------------------------
>
>                 Key: GEODE-4285
>                 URL: https://issues.apache.org/jira/browse/GEODE-4285
>             Project: Geode
>          Issue Type: Bug
>          Components: serialization
>            Reporter: Dan Smith
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.5.0
>
>
> We tracked down a race condition in distributing PDX types to the remote side of a WAN site.
> When using a parallel sender, all primaries on the sending side are dispatching the same PDX type in parallel.
> On the receiving side, the first gateway batch will get a distributed lock in PeerTypeRegistration.addRemoteType
> {code}
> if (!r.containsKey(typeId)) {
>         // This type could actually be for this distributed system,
>         // so we need to make sure the type is published while holding
>         // the distributed lock.
>         lock();
>         try {
>           r.putIfAbsent(typeId, type);
>         } finally {
>           unlock();
>         }
>       }
> {code}
> However, the second gateway batch that is received will continue on without getting the distributed lock because r.containsKey() will return true.
> The second batch could have values that require this type. But without getting the lock, those fails will get to members that need the type potentially before the first batch is finished distributing the type.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)