From: Frank Ch. Eigler Date: Thu, 19 Aug 2021 17:11:11 +0000 (-0400) Subject: PR28249: correct debuginfod after-you locking X-Git-Tag: elfutils-0.186~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89b1a4e8793e0379e386da313c1bd90080390877;p=thirdparty%2Felfutils.git 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/ChangeLog b/debuginfod/ChangeLog index 9e82d78d2..530f7dc7d 100644 --- a/debuginfod/ChangeLog +++ b/debuginfod/ChangeLog @@ -1,3 +1,9 @@ +2021-08-19 Frank Ch. Eigler + + PR28249 + * debuginfod.cxx (handler_cb): Fix after_you unique_set key + to the entire incoming URL. + 2021-07-26 Noah Sanci PR27982 diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx index 4ddd92558..fca07f619 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);