]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
PR28249: correct debuginfod after-you locking
authorFrank Ch. Eigler <fche@redhat.com>
Thu, 19 Aug 2021 17:11:11 +0000 (13:11 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Thu, 19 Aug 2021 17:11:11 +0000 (13:11 -0400)
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 <fche@redhat.com>
debuginfod/ChangeLog
debuginfod/debuginfod.cxx

index 9e82d78d2d4e9262dea224e5f78b4711c854c4f1..530f7dc7d96d2639e5578b6e7a3337349ad0ba79 100644 (file)
@@ -1,3 +1,9 @@
+2021-08-19  Frank Ch. Eigler  <fche@redhat.com>
+
+       PR28249
+       * debuginfod.cxx (handler_cb): Fix after_you unique_set key
+       to the entire incoming URL.
+
 2021-07-26  Noah Sanci  <nsanci@redhat.com>
 
        PR27982
index 4ddd92558533bb0b2ffccf0d362099786a565c6c..fca07f61954f0b37d78477e2540502b2133bffc8 100644 (file)
@@ -2141,7 +2141,7 @@ handler_cb (void * /*cls*/,
           struct timespec tsay_start, tsay_end;
           clock_gettime (CLOCK_MONOTONIC, &tsay_start);
           static unique_set<string> busy_urls;
-          unique_set_reserver<string> after_you(busy_urls, url1);
+          unique_set_reserver<string> 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);