Poison entries outside of main lock 49/81949/4
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 7 May 2019 17:42:26 +0000 (19:42 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 9 May 2019 08:47:35 +0000 (10:47 +0200)
commite983d61d93fe2da50f9c4112fa28c7fe4ee5ffef
treebb0fddd3e75ea9968b657c966e2cb5d10eafa830
parenta885056d2fddd17e3879aca9b75fe597e3be7953
Poison entries outside of main lock

Poisoning entries may involve reaction from their callbacks, which
can attempt to circle back through connections.

Make sure we poison them outside of lock context, so that any
callbacks end up seeing a poisoned connection, but without the lock
being held -- hence the locks can be acquired in-order.

JIRA: CONTROLLER-1893
Change-Id: I26551d052307812e76f3e45024a77dbb83312b17
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java
opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/TransmitQueue.java
opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/AbstractTransmitQueueTest.java