The branch, v4-3-test has been updated via 358c3a0 ctdb-scripts: Fix regression in updateip code via 5282acf async_req: make async_connect_send() "reentrant" from cf920bc vfs_acl_xattr: objects without NT ACL xattr
https://git.samba.org/?p=samba.git;a=shortlog;h=v4-3-test - Log ----------------------------------------------------------------- commit 358c3a00697f5f3ae4e4dd80b55c538b2d6f996d Author: Martin Schwenke <mar...@meltin.net> Date: Fri Dec 18 15:33:38 2015 +1100 ctdb-scripts: Fix regression in updateip code Regression introduced in commit 6471541d6d2bc9f2af0ff92b280abbd1d933cf88. Signed-off-by: Martin Schwenke <mar...@meltin.net> Reviewed-by: Michael Adam <ob...@samba.org> BUG: https://bugzilla.samba.org/show_bug.cgi?id=12106 (cherry picked from commit d8e4c5a468286ecc1c38ecd66a3606e84db02373) Autobuild-User(v4-3-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-3-test): Fri Aug 5 13:17:21 CEST 2016 on sn-devel-104 commit 5282acfe01dde280e89fdcae667fdb1dd302cac0 Author: Ralph Boehme <s...@samba.org> Date: Wed Aug 3 15:00:45 2016 +0200 async_req: make async_connect_send() "reentrant" Allow callers to pass in socket fds that where already passed to an earlier call of async_connect_send(). Callers expect this behaviour and it was working until 05d4dbda8357712cb81008e0d611fdb0e7239587 broke it. The proper fix would be to change callers to close the fd and start from scratch with a fresh socket. Bug: https://bugzilla.samba.org/show_bug.cgi?id=12105 Signed-off-by: Ralph Boehme <s...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Thu Aug 4 05:03:21 CEST 2016 on sn-devel-144 (cherry picked from commit 9c6a4ea2788808bdcc7bfea798d838ea56c3b5ec) ----------------------------------------------------------------------- Summary of changes: ctdb/config/events.d/10.interface | 2 +- lib/async_req/async_sock.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) Changeset truncated at 500 lines: diff --git a/ctdb/config/events.d/10.interface b/ctdb/config/events.d/10.interface index acc0fc8..063f091 100755 --- a/ctdb/config/events.d/10.interface +++ b/ctdb/config/events.d/10.interface @@ -291,7 +291,7 @@ case "$1" in _ip=$4 _maskbits=$5 - get_iface_ip_maskbits_family "$_oiface" "$ip" "$maskbits" + get_iface_ip_maskbits_family "$_oiface" "$_ip" "$_maskbits" oiface="$iface" # we do an extra delete to cope with the script being killed diff --git a/lib/async_req/async_sock.c b/lib/async_req/async_sock.c index c0ad8f3..a9e84d2 100644 --- a/lib/async_req/async_sock.c +++ b/lib/async_req/async_sock.c @@ -128,11 +128,21 @@ struct tevent_req *async_connect_send( } /* - * The only errno indicating that the connect is still in - * flight is EINPROGRESS, everything else is an error + * The only errno indicating that an initial connect is still + * in flight is EINPROGRESS. + * + * We get EALREADY when someone calls us a second time for a + * given fd and the connect is still in flight (and returned + * EINPROGRESS the first time). + * + * This allows callers like open_socket_out_send() to reuse + * fds and call us with an fd for which the connect is still + * in flight. The proper thing to do for callers would be + * closing the fd and starting from scratch with a fresh + * socket. */ - if (errno != EINPROGRESS) { + if (errno != EINPROGRESS && errno != EALREADY) { tevent_req_error(req, errno); return tevent_req_post(req, ev); } -- Samba Shared Repository