From patchwork Thu Aug 19 17:14:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: fche at redhat dot com X-Patchwork-Id: 45848 From: sourceware-bugzilla@sourceware.org (fche at redhat dot com) Date: Thu, 19 Aug 2021 17:14:13 +0000 Subject: [Bug debuginfod/28249] httpd-buildid-after-you gadget locks on wrong url In-Reply-To: References: Message-ID: https://sourceware.org/bugzilla/show_bug.cgi?id=28249 Frank Ch. Eigler changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Frank Ch. Eigler --- merging obvious patch: commit 89b1a4e8793e0379e386da313c1bd90080390877 (HEAD -> master) Author: Frank Ch. Eigler Date: Thu Aug 19 13:11:11 2021 -0400 PR28249: correct debuginfod after-you locking The initial code for bug #27673 accidentally nuked all buildid service concurrency, not just identical concurrent requests. Correct this with one-liner patch. Observing the effect in the automated testsuite is difficult, so hand-tested against large requests and short ones, run in an interleaved way. Signed-off-by: Frank Ch. Eigler diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 4ddd92558533..fca07f61954f 100644 --- a/debuginfod/debuginfod.cxx +++ b/debuginfod/debuginfod.cxx @@ -2141,7 +2141,7 @@ handler_cb (void * /*cls*/, struct timespec tsay_start, tsay_end; clock_gettime (CLOCK_MONOTONIC, &tsay_start); static unique_set busy_urls; - unique_set_reserver after_you(busy_urls, url1); + unique_set_reserver after_you(busy_urls, url_copy); clock_gettime (CLOCK_MONOTONIC, &tsay_end); afteryou = (tsay_end.tv_sec - tsay_start.tv_sec) + (tsay_end.tv_nsec - tsay_start.tv_nsec)/1.e9; add_metric ("thread_busy", "role", "http-buildid-after-you", -1);