Re: build-ids, .debug_sup and other IDs (Was: [PATCH] Handle DWARF 5 separate debug sections)

2021-06-14 Thread Frank Ch. Eigler via Elfutils-devel
Hi -

> I'm concerned about using dwo IDs to index debuginfod. They are only
> 64-bits and there will be many more dwo IDs than build ids or
> supplemental file ids [...]

AIUI, -gsplit-dwarf is more suitable for development/scratch builds
than for distro binaries.  If distros agree, then I would not expect
.dwo files to show up in distro-wide debuginfod services, but rather
within developers' own build trees.  Then debuginfod indexing
collisions would only be a risk within a particular local set of trees
(if serviced by a local debuginfod), rather than distro wide or wider.

> What about using `/buildid/BUILDID/dwp` instead? This is not a
> perfect solution, since (currently) no one puts the build-id into
> the *.dwp file, but it does get around this collision problem.

The hypothetical problem is collision between dwo/dwp files, not
between dwo/dwp and normal buildid dwarf files, right?  In that case,
are you talking about two levels of indexing (buildid of final linked
binary + dwo_id)?  That would resemble the indexing work required from
debuginfod to match up binaries with their source files plus binaries
with dwz supplemental files).

- FChE



Re: build-ids, .debug_sup and other IDs (Was: [PATCH] Handle DWARF 5 separate debug sections)

2021-06-14 Thread Matt Schulte via Elfutils-devel
Thanks for the thoughts!

> AIUI, -gsplit-dwarf is more suitable for development/scratch builds
> than for distro binaries.  If distros agree, then I would not expect
> .dwo files to show up in distro-wide debuginfod services, but rather
> within developers' own build trees.

That's a good point. My concerns are only valid if distros decide to
start building packages using -gsplit-dwarf and dwp to package up
the .dwo files into one .dwp file.

I also agree that split dwarfs (split dwarves?) are more suitable for
local builds than for distro builds. The one advantage I can think
of that split dwarfs offer distro binaries is a faster build for
larger packages (since dwp does not do all the relocations the
linker would normally do). But I don't know enough about building
packages to say what will happen in the future.

> The hypothetical problem is collision between dwo/dwp files, not
> between dwo/dwp and normal buildid dwarf files, right?

That's correct.

> In that case, are you talking about two levels of indexing (buildid
> of final linked binary + dwo_id)?

I was suggesting one level of indexing. The buildid of the final linked
binary would be used to reference the dwp file directly. This solution
would not work for individual dwo files. For individual dwo files we
could still use the dwo_id as they should only be for local builds.

-Matt


[Bug debuginfod/27982] New: debuginfod client maximum-transfer-size and -time parameters

2021-06-14 Thread fche at redhat dot com via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=27982

Bug ID: 27982
   Summary: debuginfod client maximum-transfer-size and -time
parameters
   Product: elfutils
   Version: unspecified
Status: NEW
  Severity: normal
  Priority: P2
 Component: debuginfod
  Assignee: unassigned at sourceware dot org
  Reporter: fche at redhat dot com
CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

DEBUGINFOD_TIMEOUT is a good way to catch servers that are too slow to *start*
transmitting a file.  But we have no way of limiting total download time or
space.  A user might prefer to have his debugger fetch only quick & small
files, and make do without the bigger ones.  Some transitive dependencies of
e.g. gnome programs are huge: 3GB of LLVM debuginfo, 1GB of webkitgtk, etc.
etc.

We could add a $DEBUGINFOD_MAXSIZE and/or $DEBUGINFOD_MAXTIME parameters to the
client side environment variable suite.  The MAXSIZE one could be communicated
to the server in the query as an extra header, so it can quickly respond with
some HTTP error code (since it can generally find out the destination file
sizes prior to actually decompressing them); it can also be enforced during
download, as soon as a Content-Length: header is received.  The MAXTIME one
could be added as a debuginfod-client.c main loop parameter.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug debuginfod/27983] New: debuginfod client should eliminate duplicate outgoing server urls

2021-06-14 Thread fche at redhat dot com via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=27983

Bug ID: 27983
   Summary: debuginfod client should eliminate duplicate outgoing
server urls
   Product: elfutils
   Version: unspecified
Status: NEW
  Severity: normal
  Priority: P2
 Component: debuginfod
  Assignee: unassigned at sourceware dot org
  Reporter: fche at redhat dot com
CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

Gazing at server logs, one sees a minority of clients who appear to have
duplicate query traffic coming in: the same URL, milliseconds apart.  Chances
are the user accidentally doubled her $DEBUGINFOD_URLS somehow, and the client
library is dutifully asking the servers TWICE.  Bug #27863 reduces the pain on
the servers' CPU, but dupe network traffic is still being paid.  We should
reject sending outright duplicate concurrent traffic.

-- 
You are receiving this mail because:
You are on the CC list for the bug.