The Samba-Bugzilla – Attachment 10581 Details for
Bug 11034
wbinfo --ping-dc fails when session expires
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patches for 4.0
patches-4-0 (text/plain), 3.69 KB, created by
Christof Schmitt
on 2015-01-06 17:27:58 UTC
(
hide
)
Description:
patches for 4.0
Filename:
MIME Type:
Creator:
Christof Schmitt
Created:
2015-01-06 17:27:58 UTC
Size:
3.69 KB
patch
obsolete
>From c14b1f23110c5f978ededf1bfad77f15eee5c6bb Mon Sep 17 00:00:00 2001 >From: Christof Schmitt <cs@samba.org> >Date: Mon, 22 Dec 2014 15:19:47 -0800 >Subject: [PATCH 1/2] winbind: Retry LogonControl RPC in ping-dc after session expiration > >When the underlying session expires, the LogonControl RPC call used in >ping-dc returns NT_STATUS_IO_DEVICE_ERROR. Retry once in this case, >instead of returning the error to the caller. > >Signed-off-by: Christof Schmitt <cs@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Tue Dec 23 02:46:34 CET 2014 on sn-devel-104 >(cherry picked from commit 2fdc55160309cec89aeb88243cb18d058c67e918) > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11034 >--- > source3/winbindd/winbindd_dual_srv.c | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > >diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c >index 4227d6a..2a78bd5 100644 >--- a/source3/winbindd/winbindd_dual_srv.c >+++ b/source3/winbindd/winbindd_dual_srv.c >@@ -687,12 +687,14 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r) > WERROR werr; > fstring logon_server; > struct dcerpc_binding_handle *b; >+ bool retry = false; > > domain = wb_child_domain(); > if (domain == NULL) { > return NT_STATUS_REQUEST_NOT_ACCEPTED; > } > >+reconnect: > status = cm_connect_netlogon(domain, &netlogon_pipe); > reset_cm_connection_on_error(domain, status); > if (!NT_STATUS_IS_OK(status)) { >@@ -719,6 +721,14 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r) > logon_server, NETLOGON_CONTROL_QUERY, > 2, &info, &werr); > >+ if (NT_STATUS_EQUAL(status, NT_STATUS_IO_DEVICE_ERROR) && !retry) { >+ DEBUG(10, ("Session might have expired. " >+ "Reconnect and retry once.\n")); >+ invalidate_cm_connection(&domain->conn); >+ retry = true; >+ goto reconnect; >+ } >+ > reset_cm_connection_on_error(domain, status); > if (!NT_STATUS_IS_OK(status)) { > DEBUG(2, ("dcerpc_netr_LogonControl failed: %s\n", >-- >1.7.1 > > >From e58eae53794da4cb1380bad3abbab3e777bfb396 Mon Sep 17 00:00:00 2001 >From: Christof Schmitt <cs@samba.org> >Date: Fri, 19 Dec 2014 12:24:53 -0700 >Subject: [PATCH 2/2] winbind: Retry after SESSION_EXPIRED error in ping-dc > >Trying to establish a netlogon connection when the service ticket >expires might fail with NT_STATUS_NETWORK_SESSION_EXPIRED. The >underlying client code already marks the session as invalid, so retry >the netlogon connect in this case. > >Signed-off-by: Christof Schmit <cs@samba.org> >Reviewed-by: Jeremy Allison <jra@samba.org> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Tue Jan 6 02:58:57 CET 2015 on sn-devel-104 >(cherry picked from commit a2670f15dea27c10e3827216adf572f9c3894f85) > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=11034 >--- > source3/winbindd/winbindd_dual_srv.c | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > >diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c >index 2a78bd5..22dfbb7 100644 >--- a/source3/winbindd/winbindd_dual_srv.c >+++ b/source3/winbindd/winbindd_dual_srv.c >@@ -696,6 +696,14 @@ NTSTATUS _wbint_PingDc(struct pipes_struct *p, struct wbint_PingDc *r) > > reconnect: > status = cm_connect_netlogon(domain, &netlogon_pipe); >+ if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_SESSION_EXPIRED)) { >+ /* >+ * Retry to open new connection with new kerberos ticket. >+ */ >+ invalidate_cm_connection(&domain->conn); >+ status = cm_connect_netlogon(domain, &netlogon_pipe); >+ } >+ > reset_cm_connection_on_error(domain, status); > if (!NT_STATUS_IS_OK(status)) { > DEBUG(3, ("could not open handle to NETLOGON pipe\n")); >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
cs
:
review+
jra
:
review+
Actions:
View
Attachments on
bug 11034
: 10581 |
10583
|
10584