From 89b1a4e8793e0379e386da313c1bd90080390877 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 19 Aug 2021 13:11:11 -0400 Subject: [PATCH] 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 --- debuginfod/ChangeLog | 6 ++++++ debuginfod/debuginfod.cxx | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog index 9e82d78..530f7dc 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 4ddd925..fca07f6 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); -- 2.7.4