summaryrefslogtreecommitdiff
path: root/doc/debuginfod.8
diff options
context:
space:
mode:
authorDi Chen <dichen@redhat.com>2021-08-20 13:03:21 +0800
committerMark Wielaard <mark@klomp.org>2021-08-27 19:40:55 +0200
commitd3f914023abcd6ae76b168da97518e5e7dbd761a (patch)
treed5f3ed04d6a459eb858ef0a4906f389b8fcff01a /doc/debuginfod.8
parent610623458b7e98ed3e912e4b7ca8050f6ce4c698 (diff)
downloadelfutils-d3f914023abcd6ae76b168da97518e5e7dbd761a.tar.gz
debuginfod: PR27917 - protect against federation loops
If someone misconfigures a debuginfod federation to have loops, and a nonexistent buildid lookup is attempted, bad things will happen, as is documented. This patch aims to reduce the risk by adding an option to debuginfod that functions kind of like an IP packet's TTL: a limit on the length of XFF: header that debuginfod is willing to process. If X-Forwarded-For: exceeds N hops, it will not delegate a local lookup miss to upstream debuginfods. Commit ab38d167c40c99 causes federation loops for non-existent resources to result in multiple temporary deadlocks, each lasting for $DEBUGINFOD_TIMEOUT seconds. Since concurrent requests for each unique resource are now serialized, federation loops can result in one server thread waiting to acquire a lock while the server thread holding the lock waits for the first thread to respond to an http request. This PR can help protect against the above multiple temporary deadlocks behaviour. Ex. if --forwarded-ttl-limit=0 then the timeout behaviour of local loops should be avoided. https://sourceware.org/bugzilla/show_bug.cgi?id=27917 Signed-off-by: Di Chen <dichen@redhat.com>
Diffstat (limited to 'doc/debuginfod.8')
-rw-r--r--doc/debuginfod.86
1 files changed, 6 insertions, 0 deletions
diff --git a/doc/debuginfod.8 b/doc/debuginfod.8
index 3e791b62..5b0d793c 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -236,6 +236,12 @@ can translate to RAM scarcity if the disk happens to be on a RAM
virtual disk. The default threshold is 25%.
.TP
+.B "\-\-forwarded\-ttl\-limit=NUM"
+Configure limits of X-Forwarded-For hops. if X-Forwarded-For
+exceeds N hops, it will not delegate a local lookup miss to
+upstream debuginfods. The default limit is 8.
+
+.TP
.B "\-v"
Increase verbosity of logging to the standard error file descriptor.
May be repeated to increase details. The default verbosity is 0.