messages_dgm: Properly handle receiver re-initialization
authorVolker Lendecke <vl@samba.org>
Thu, 7 Feb 2019 15:15:46 +0000 (16:15 +0100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 4 Mar 2019 10:37:53 +0000 (10:37 +0000)
commitad3751b5a51097a6f7d695660f9ea11278bbf182
treedb962739d852fada7ab2515edf39598a1b0355a3
parent9dd1b416654beb2c3771e6924c08c45518a7b3aa
messages_dgm: Properly handle receiver re-initialization

This only properly covers the small-message nonblocking case. Covering
the large-message and the blocking case is a much larger effort assuming
we want to re-send the failed message if parts of the message has gone
through properly. Don't do that for now.

This was found by sanba_dnsupdate constantly recreating its irpc handle to
winbindd in the RODC case.

The messaging_dgm code cached connected datagram sockets based on the
destination pid for 1 second. Which means the IRPC responses from
winbindd are never delivered to samba_dnsupdate,
which will then hit a timeout.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13786

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 2543bba0364d8054e9ad316f5611621841bc061d)
selftest/knownfail.d/local-messaging [deleted file]
source3/lib/messages_dgm.c