The Samba-Bugzilla – Attachment 17785 Details for
Bug 15310
New samba-dcerpc architecture does not scale gracefully
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-15310.txt (text/plain), 3.79 KB, created by
Volker Lendecke
on 2023-03-01 14:55:15 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Volker Lendecke
Created:
2023-03-01 14:55:15 UTC
Size:
3.79 KB
patch
obsolete
>From 8a3ca46db5e0afe9801ca9fca143e11285a667da Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Wed, 1 Mar 2023 14:40:37 +0100 >Subject: [PATCH 1/3] rpcd: Increase listening queue > >Allow more waiters under load. > >Bug: https://bugzilla.samba.org/show_bug.cgi?id=15310 >Signed-off-by: Volker Lendecke <vl@samba.org> >--- > source3/rpc_server/rpc_host.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/source3/rpc_server/rpc_host.c b/source3/rpc_server/rpc_host.c >index 3991ce4e56b..455a86b4530 100644 >--- a/source3/rpc_server/rpc_host.c >+++ b/source3/rpc_server/rpc_host.c >@@ -1689,7 +1689,7 @@ static void rpc_server_setup_got_endpoints(struct tevent_req *subreq) > } > > for (j=0; j<e->num_fds; j++) { >- ret = listen(e->fds[j], 5); >+ ret = listen(e->fds[j], 256); > if (ret == -1) { > tevent_req_nterror( > req, map_nt_error_from_unix(errno)); >-- >2.30.2 > > >From 373f5335d4fc3d7ee74a2e23ce30af4217b84200 Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Wed, 1 Mar 2023 14:42:00 +0100 >Subject: [PATCH 2/3] rpcd: Do blocking connects to local pipes > >We don't have real async callers yet, and this is the simplest way to >fix our missing light-weight deterministic async fallback mechanism. > >Bug: https://bugzilla.samba.org/show_bug.cgi?id=15310 >Signed-off-by: Volker Lendecke <vl@samba.org> >--- > source3/rpc_client/local_np.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > >diff --git a/source3/rpc_client/local_np.c b/source3/rpc_client/local_np.c >index 20b68d62d13..a1a2028387e 100644 >--- a/source3/rpc_client/local_np.c >+++ b/source3/rpc_client/local_np.c >@@ -101,7 +101,7 @@ static struct tevent_req *np_sock_connect_send( > return tevent_req_post(req, ev); > } > >- ret = set_blocking(state->sock, false); >+ ret = set_blocking(state->sock, true); > if (ret == -1) { > tevent_req_error(req, errno); > return tevent_req_post(req, ev); >@@ -174,6 +174,12 @@ static void np_sock_connect_connected(struct tevent_req *subreq) > return; > } > >+ ret = set_blocking(state->sock, false); >+ if (ret == -1) { >+ tevent_req_error(req, errno); >+ return; >+ } >+ > ret = tstream_bsd_existing_socket( > state, state->sock, &state->transport); > if (ret == -1) { >-- >2.30.2 > > >From 298eaa5bb52489864f2859a354ef350beff37c83 Mon Sep 17 00:00:00 2001 >From: Volker Lendecke <vl@samba.org> >Date: Mon, 20 Feb 2023 18:46:50 +0100 >Subject: [PATCH 3/3] rpcd: With npa->need_idle_server we can have more than > 256 servers > >Before this patch the worker-status cut the worker index such that >samba-dcerpcd could not properly update status of the surplus rpc >daemons. This could lead to those daemons to stay around forever, >samba-dcerpcd will never notice they are idle and can exit. > >Bug: https://bugzilla.samba.org/show_bug.cgi?id=15310 >Signed-off-by: Volker Lendecke <vl@samba.org> >--- > source3/librpc/idl/rpc_host.idl | 2 +- > source3/rpc_server/rpc_worker.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > >diff --git a/source3/librpc/idl/rpc_host.idl b/source3/librpc/idl/rpc_host.idl >index 899eabf3c26..ddbd2781fe1 100644 >--- a/source3/librpc/idl/rpc_host.idl >+++ b/source3/librpc/idl/rpc_host.idl >@@ -66,7 +66,7 @@ interface rpc_host_msg > /** > * @brief Which of the processes of a helper prog is this from > */ >- uint8 worker_index; >+ uint32 worker_index; > > /** > * @brief How many clients this process serves right now >diff --git a/source3/rpc_server/rpc_worker.c b/source3/rpc_server/rpc_worker.c >index 03ab9742833..e7112a9efc9 100644 >--- a/source3/rpc_server/rpc_worker.c >+++ b/source3/rpc_server/rpc_worker.c >@@ -93,7 +93,7 @@ static void rpc_worker_print_interface( > > static NTSTATUS rpc_worker_report_status(struct rpc_worker *worker) > { >- uint8_t buf[6]; >+ uint8_t buf[9]; > DATA_BLOB blob = { .data = buf, .length = sizeof(buf), }; > enum ndr_err_code ndr_err; > NTSTATUS status; >-- >2.30.2 >
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
Actions:
View
Attachments on
bug 15310
:
17785
|
17794
|
17795