The Samba-Bugzilla – Attachment 13088 Details for
Bug 12697
CTDB can spin hard on revoking readonly delegations if a node becomes disconnected
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for v4-5, v4-6
BZ12697.patch (text/plain), 2.12 KB, created by
Amitay Isaacs
on 2017-03-20 00:54:21 UTC
(
hide
)
Description:
Patch for v4-5, v4-6
Filename:
MIME Type:
Creator:
Amitay Isaacs
Created:
2017-03-20 00:54:21 UTC
Size:
2.12 KB
patch
obsolete
>From 1c65e9e28ab87fa7958f287921ddfa2a704be82e Mon Sep 17 00:00:00 2001 >From: Amitay Isaacs <amitay@gmail.com> >Date: Tue, 14 Mar 2017 16:12:55 +1100 >Subject: [PATCH] ctdb-readonly: Avoid a tight loop waiting for revoke to > complete > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=12697 > >During revoking readonly delegations, if one of the nodes disappears, then >there is no point re-trying revoking readonly delegation. The database >needs to be recovered before the revoke operation can succeed. So retry >only after a grace period. > >Signed-off-by: Amitay Isaacs <amitay@gmail.com> >Reviewed-by: Martin Schwenke <martin@meltin.net> > >Autobuild-User(master): Martin Schwenke <martins@samba.org> >Autobuild-Date(master): Fri Mar 17 14:05:57 CET 2017 on sn-devel-144 > >(cherry picked from commit ad758cb869ac83534993caa212abc9fe9905ec68) >--- > ctdb/server/ctdb_call.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > >diff --git a/ctdb/server/ctdb_call.c b/ctdb/server/ctdb_call.c >index a05ec1a..8ce3928 100644 >--- a/ctdb/server/ctdb_call.c >+++ b/ctdb/server/ctdb_call.c >@@ -1600,7 +1600,6 @@ static int deferred_call_destructor(struct revokechild_deferred_call *deferred_c > { > struct ctdb_context *ctdb = deferred_call->ctdb; > struct revokechild_requeue_handle *requeue_handle = talloc(ctdb, struct revokechild_requeue_handle); >- struct ctdb_req_call_old *c = (struct ctdb_req_call_old *)deferred_call->hdr; > > requeue_handle->ctdb = ctdb; > requeue_handle->hdr = deferred_call->hdr; >@@ -1608,9 +1607,12 @@ static int deferred_call_destructor(struct revokechild_deferred_call *deferred_c > requeue_handle->ctx = deferred_call->ctx; > talloc_steal(requeue_handle, requeue_handle->hdr); > >- /* when revoking, any READONLY requests have 1 second grace to let read/write finish first */ >+ /* Always delay revoke requests. Either wait for the read/write >+ * operation to complete, or if revoking failed wait for recovery to >+ * complete >+ */ > tevent_add_timer(ctdb->ev, requeue_handle, >- timeval_current_ofs(c->flags & CTDB_WANT_READONLY ? 1 : 0, 0), >+ timeval_current_ofs(1, 0), > deferred_call_requeue, requeue_handle); > > return 0; >-- >2.9.3 >
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:
martins
:
review+
Actions:
View
Attachments on
bug 12697
:
13088
|
13236