From 3bcf887340fd47d0d8a3671cc45abe2989d1fd6c Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 24 Apr 2022 12:16:58 +0200 Subject: [PATCH] debuginfod: Use MHD_USE_ITC in MHD_start_daemon flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This prevents the "Server reached connection limit. Closing inbound connection." issue we have been seeing in the run-debuginfod-webapi-concurrency.sh testcase. From the manual: If the connection limit is reached, MHD’s behavior depends a bit on other options. If MHD_USE_ITC was given, MHD will stop accepting connections on the listen socket. This will cause the operating system to queue connections (up to the listen() limit) above the connection limit. Those connections will be held until MHD is done processing at least one of the active connections. If MHD_USE_ITC is not set, then MHD will continue to accept() and immediately close() these connections. https://sourceware.org/bugzilla/show_bug.cgi?id=28708 Signed-off-by: Mark Wielaard --- debuginfod/ChangeLog | 4 ++++ debuginfod/debuginfod.cxx | 3 +++ tests/ChangeLog | 4 ++++ tests/run-debuginfod-webapi-concurrency.sh | 4 +++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index d6f7b282..0f1bca6f 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,7 @@ +2022-04-24 Mark Wielaard + + * debuginfod.cxx (main): Add MHD_USE_ITC to MHD_start_daemon flags. + 2022-04-13 Aaron Merey * debuginfod-client.c (debuginfod_query_server): diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 9c0217f6..adca8208 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -3910,6 +3910,9 @@ main (int argc, char *argv[]) | MHD_USE_EPOLL #endif | MHD_USE_DUAL_STACK +#if MHD_VERSION >= 0x00095200 + | MHD_USE_ITC +#endif | MHD_USE_DEBUG, /* report errors to stderr */ http_port, NULL, NULL, /* default accept policy */ diff --git a/tests/ChangeLog b/tests/ChangeLog index 2286f53f..44b8df88 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2022-04-24 Mark Wielaard + + * run-debuginfod-webapi-concurrency.sh: Fix PR number in xfail. + 2022-04-23 Mark Wielaard * run-debuginfod-webapi-concurrency.sh: Lower parallel lookups. diff --git a/tests/run-debuginfod-webapi-concurrency.sh b/tests/run-debuginfod-webapi-concurrency.sh index 4928f6d0..47dcadcc 100755 --- a/tests/run-debuginfod-webapi-concurrency.sh +++ b/tests/run-debuginfod-webapi-concurrency.sh @@ -62,6 +62,8 @@ do PID1=0 done -xfail "grep Server.reached.connection vlog$PORT1" # PR18661 +# Note this xfail comes too late, the above wait_ready for +# http_responses_transfer_bytes_count will have failed. +xfail "grep Server.reached.connection vlog$PORT1" # PR28661 exit 0 -- 2.30.2