Dan Smith created GEODE-4285:
--------------------------------

             Summary: 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


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
(v6.4.14#64029)

Reply via email to