The Samba-Bugzilla – Attachment 18309 Details for
Bug 15573
panic in dreplsrv_op_pull_source_apply_changes_trigger
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Patch for v4-19-test
bfixes-tmp419.txt (text/plain), 2.74 KB, created by
Stefan Metzmacher
on 2024-05-29 14:20:59 UTC
(
hide
)
Description:
Patch for v4-19-test
Filename:
MIME Type:
Creator:
Stefan Metzmacher
Created:
2024-05-29 14:20:59 UTC
Size:
2.74 KB
patch
obsolete
>From 9a4be61bc510196166a0f9f8cd9c10d4cd8e8861 Mon Sep 17 00:00:00 2001 >From: Stefan Metzmacher <metze@samba.org> >Date: Tue, 6 Feb 2024 21:09:58 +0100 >Subject: [PATCH] s4:dsdb/repl: let drepl_out_helpers.c always go via > dreplsrv_out_drsuapi_send() > >I have customer backtraces showing that 'drsuapi' is NULL in >dreplsrv_op_pull_source_get_changes_trigger() called from the >WERR_DS_DRA_SCHEMA_MISMATCH retry case of >dreplsrv_op_pull_source_apply_changes_trigger(), while 'drsuapi' was >a valid pointer there. > >From reading the code I don't understand how this can happen, >but it does very often on RODCs. And this fix prevents the problem. > >BUG: https://bugzilla.samba.org/show_bug.cgi?id=15573 > >Signed-off-by: Stefan Metzmacher <metze@samba.org> >Reviewed-by: Andrew Bartlett <abartlet@samba.org> >(cherry picked from commit 83030780285290ecf64b57c1744634379b68ea01) >--- > source4/dsdb/repl/drepl_out_helpers.c | 26 ++++++++++++++++++++------ > 1 file changed, 20 insertions(+), 6 deletions(-) > >diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c >index c4aa784674f1..d2bc5b3c1873 100644 >--- a/source4/dsdb/repl/drepl_out_helpers.c >+++ b/source4/dsdb/repl/drepl_out_helpers.c >@@ -1043,7 +1043,7 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req > > if (W_ERROR_EQUAL(status, WERR_DS_DRA_SCHEMA_MISMATCH)) { > struct dreplsrv_partition *p; >- bool ok; >+ struct tevent_req *subreq = NULL; > > if (was_schema) { > nt_status = werror_to_ntstatus(WERR_BAD_NET_RESP); >@@ -1141,12 +1141,15 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req > > state->retry_started = true; > >- ok = dreplsrv_op_pull_source_detect_schema_cycle(req); >- if (!ok) { >+ subreq = dreplsrv_out_drsuapi_send(state, >+ state->ev, >+ state->op->source_dsa->conn); >+ if (tevent_req_nomem(subreq, req)) { > return; > } >- >- dreplsrv_op_pull_source_get_changes_trigger(req); >+ tevent_req_set_callback(subreq, >+ dreplsrv_op_pull_source_connect_done, >+ req); > return; > > } else if (!W_ERROR_IS_OK(status)) { >@@ -1205,10 +1208,21 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req > * operation once we are done. > */ > if (state->source_dsa_retry != NULL) { >+ struct tevent_req *subreq = NULL; >+ > state->op->source_dsa = state->source_dsa_retry; > state->op->extended_op = state->extended_op_retry; > state->source_dsa_retry = NULL; >- dreplsrv_op_pull_source_get_changes_trigger(req); >+ >+ subreq = dreplsrv_out_drsuapi_send(state, >+ state->ev, >+ state->op->source_dsa->conn); >+ if (tevent_req_nomem(subreq, req)) { >+ return; >+ } >+ tevent_req_set_callback(subreq, >+ dreplsrv_op_pull_source_connect_done, >+ req); > return; > } > >-- >2.34.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:
slow
:
review+
Actions:
View
Attachments on
bug 15573
:
18308
| 18309