messages_dgm: Properly handle receiver re-initialization
commit0f1525d430ec4975952520b00cbd4c5e49f9b097
authorVolker Lendecke <vl@samba.org>
Thu, 7 Feb 2019 15:15:46 +0000 (7 16:15 +0100)
committerKarolin Seeger <kseeger@samba.org>
Tue, 5 Mar 2019 07:39:27 +0000 (5 07:39 +0000)
tree3286c810dd04541802901f7e05e138d8efc21cda
parente2b7d3ff62745c1205a36b296e9371636950cc85
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