Hi, On Thu, 2021-08-05 at 12:54 -0400, Frank Ch. Eigler wrote: > > I like the verbose http header output, but wish it was done earlier > > instead of after the download. Maybe when we commit to an url, if > > the > > info is available then. > > What do you mean "done"? Printed?
Yes, since the actual download might take a bit, it is nice to see the headers at the moment we commit to a server/download. aka here in the source: if (vfd >= 0 && !verbose_reported && committed_to >= 0) { bool pnl = (c->default_progressfn_printed_p && vfd == STDERR_FILENO); dprintf (vfd, "%scommitted to url %d\n", pnl ? "\n" : "", committed_to); if (pnl) c->default_progressfn_printed_p = 0; verbose_reported = true; } Assuming we have the headers at that point of course. Otherwise right after that when they become available (this is inside the download loop). > > The new X-FILE and X-ARCHIVE headers also seem useful. > > One question about X-FILE, if it doesn't come from an archive, does > > it > > leak a file system path that might be "secret" on the server? > > Perhaps kind of sort of ... but since source files for such buildids > are resolved only against the host filesystem, those same names will > be there in all their glory in the DWARF. My guess is that public > servers that care about such configuration privacy will be > exclusively > archive based. Yeah, you are right, the DWARF debug files themselves already "expose" those paths. > > Why is X-FILE-SIZE != Content-Length ? > > Because Content-Length can be shorter due to compression > transfer-encoding. It's the file size that governs local storage & > DEBUGINFOD_MAXSIZE interaction. Ah, of course, then it is indeed useful to have both headers. > > I am less enthusiastic about the new > > debuginfod_get_response_headers > > interface. It seems not as useful since it only works if we haven't > > already (negatively) cached the file and it is very free-form, do > > we > > guarantee any headers are there? > > Naturally we can't guarantee any headers, because they are at the > pleasure of the server. > > > Could you provide a user story where this is used? > > Not really, beyond just printing the things for information purposes, > but not wanting the whole DEBUGINFOD_VERBOSE=1 firehose. In the mid > term, it could help systemd-coredumpctl type tools map buildids to > actual distro artifact names, and enable paranoid > federation/buildtree/checking type measures (where we may want to > spot-check servers that buildids haven't been hijacked). Vague but I > think there's something there. Yes, I do think there is something there, but imho it is too vague and fragile to be useful as is, especially since it depends on what is in the cache. > > Maybe this interface is more useful if it was done as a new active > > query type (the HEAD query you mention in the commit message)? > > That in turn would require THREE new API functions or a stateful > set_HEAD_mode_and_return_dev_null one and modifying the three main > lookup functions. Yes, it definitely is more work. Cheers, Mark