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>
Tue, 5 Mar 2019 19:29:11 +0000 (19:29 +0000)
commitcaf15a440a2b2800ebb6c00802def5886d7cd386
tree44814430687922ba1a60e08a1617d34eb78d12cc
parentd3a849880730e70ebf35b8afaee4627df14692f2
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