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)