* contrasting elfutils debuginfod and clr-debug-info server
@ 2020-02-05 17:33 Frank Ch. Eigler
2020-02-05 19:11 ` Arjan van de Ven
2020-02-07 9:06 ` Mark Wielaard
0 siblings, 2 replies; 10+ messages in thread
From: Frank Ch. Eigler @ 2020-02-05 17:33 UTC (permalink / raw)
To: elfutils-devel; +Cc: arjan, patrick.mccarty
Hi -
Through some comments on phoronix [0], just became (re?)aware of the
neat clear-linux debuginfo server facility [1]. It's similar to the
nixos one we have mentioned before in that it relies on a local fuse
server expose remote debuginfo artifacts under /usr/src,
/usr/lib/debug etc. to local tools. The server side relies on a web
server [2] that has a carefully unpacked, unified-namespace tree of
all the artifacts into individual .tar files. This has some
pros/cons, naturally.
Some contrasts in a tabular form:
clear-linux elfutils
indexed by filename by buildid
client side sw fuse server apprx. none
server side sw plain file server debuginfod
server side disk unpacked, unified-namespace layout orig pkg set
multi-version maybe, if /usr/src/XXXX filenames unique no problem
multi-arch req. separate servers no problem
multi-distro req. separate servers one server ok
Neat system. I wonder how interoperation would work.
(cc:'ing a few clearlinux folks just for their information.)
[0] https://www.phoronix.com/scan.php?page=news_item&px=Red-Hat-FOSDEM-debuginfod
[1] https://docs.01.org/clearlinux/latest/guides/clear/debug.html
[2] https://download.clearlinux.org/debuginfo/
- FChE
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-05 17:33 contrasting elfutils debuginfod and clr-debug-info server Frank Ch. Eigler
@ 2020-02-05 19:11 ` Arjan van de Ven
2020-02-05 19:14 ` Frank Ch. Eigler
2020-02-07 9:06 ` Mark Wielaard
1 sibling, 1 reply; 10+ messages in thread
From: Arjan van de Ven @ 2020-02-05 19:11 UTC (permalink / raw)
To: Frank Ch. Eigler, elfutils-devel; +Cc: patrick.mccarty
On 2/5/2020 9:32 AM, Frank Ch. Eigler wrote:
> Hi -
>
> Through some comments on phoronix [0], just became (re?)aware of the
> neat clear-linux debuginfo server facility [1]. It's similar to the
> nixos one we have mentioned before in that it relies on a local fuse
> server expose remote debuginfo artifacts under /usr/src,
> /usr/lib/debug etc. to local tools. The server side relies on a web
> server [2] that has a carefully unpacked, unified-namespace tree of
> all the artifacts into individual .tar files. This has some
> pros/cons, naturally.
>
> Some contrasts in a tabular form:
>
> clear-linux elfutils
>
> indexed by filename by buildid
actually the clear side provides both build id and filename, the tools on the client
(gdb and the like) try buildid first, and fall back to filename, and we just do both
one of our requirements was that the server side is just "flat http files" so that no
active components exist on the server (so that CDNs and mirrors scale this out with low
friction)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-05 19:11 ` Arjan van de Ven
@ 2020-02-05 19:14 ` Frank Ch. Eigler
2020-02-05 22:05 ` Arjan van de Ven
0 siblings, 1 reply; 10+ messages in thread
From: Frank Ch. Eigler @ 2020-02-05 19:14 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: elfutils-devel, patrick.mccarty
Hi, Arjan -
> > clear-linux elfutils
> >
> > indexed by filename by buildid
> actually the clear side provides both build id and filename, the
> tools on the client (gdb and the like) try buildid first, and fall
> back to filename, and we just do both
AIUI that works by using the "/usr/lib/debug/.build-id/HE/XCODE" as the
key, i.e., the build-id as a file name.
> one of our requirements was that the server side is just "flat http
> files" so that no active components exist on the server (so that
> CDNs and mirrors scale this out with low friction)
Yup, that makes sense. In our case, aggressive caching with frontend
CDNs should also be possible, but staging the data whole at a CDN is
not so easy.
- FChE
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-05 19:14 ` Frank Ch. Eigler
@ 2020-02-05 22:05 ` Arjan van de Ven
2020-02-07 9:13 ` Mark Wielaard
0 siblings, 1 reply; 10+ messages in thread
From: Arjan van de Ven @ 2020-02-05 22:05 UTC (permalink / raw)
To: Frank Ch. Eigler; +Cc: elfutils-devel, patrick.mccarty
On 2/5/2020 11:14 AM, Frank Ch. Eigler wrote:
> Hi, Arjan -
>
>>> clear-linux elfutils
>>>
>>> indexed by filename by buildid
>
>> actually the clear side provides both build id and filename, the
>> tools on the client (gdb and the like) try buildid first, and fall
>> back to filename, and we just do both
>
> AIUI that works by using the "/usr/lib/debug/.build-id/HE/XCODE" as the
> key, i.e., the build-id as a file name.
sure but it's not "/usr/bin/true" of which you might have different versions over
the lifespan of a distro through its updates
(e.g. you can connect gdb to a process that got updated on disk later and still get the right answers)
the disinction of having the "/.build-id/" prefix versus just the code is not a huge difference
(so all the things you can do with just the number you can do with the prefix added as well)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-05 17:33 contrasting elfutils debuginfod and clr-debug-info server Frank Ch. Eigler
2020-02-05 19:11 ` Arjan van de Ven
@ 2020-02-07 9:06 ` Mark Wielaard
2020-02-07 14:46 ` Arjan van de Ven
1 sibling, 1 reply; 10+ messages in thread
From: Mark Wielaard @ 2020-02-07 9:06 UTC (permalink / raw)
To: Frank Ch. Eigler; +Cc: elfutils-devel, arjan, patrick.mccarty
Hi,
On Wed, Feb 05, 2020 at 12:32:49PM -0500, Frank Ch. Eigler wrote:
> Through some comments on phoronix [0], just became (re?)aware of the
> neat clear-linux debuginfo server facility [1]. It's similar to the
> nixos one we have mentioned before in that it relies on a local fuse
> server expose remote debuginfo artifacts under /usr/src,
> /usr/lib/debug etc. to local tools. The server side relies on a web
> server [2] that has a carefully unpacked, unified-namespace tree of
> all the artifacts into individual .tar files. This has some
> pros/cons, naturally.
This looks nice. I wonder if we can somehow make debuginfod-client a
backend for a similar Fuse system.
> Some contrasts in a tabular form:
>
> clear-linux elfutils
>
> indexed by filename by buildid
> client side sw fuse server apprx. none
> server side sw plain file server debuginfod
> server side disk unpacked, unified-namespace layout orig pkg set
> multi-version maybe, if /usr/src/XXXX filenames unique no problem
When using newer rpm then the filenames should be unique:
https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo
But I am not sure how it would handle multiple versions of
executables.
> multi-arch req. separate servers no problem
> multi-distro req. separate servers one server ok
One of the use cases of debuginfod is working with local/team builds
for binaries not packaged by a distro. How does clear-linux handle that?
Cheers,
Mark
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-05 22:05 ` Arjan van de Ven
@ 2020-02-07 9:13 ` Mark Wielaard
2020-02-07 14:47 ` Arjan van de Ven
0 siblings, 1 reply; 10+ messages in thread
From: Mark Wielaard @ 2020-02-07 9:13 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: Frank Ch. Eigler, elfutils-devel, patrick.mccarty
Hi,
On Wed, Feb 05, 2020 at 02:05:42PM -0800, Arjan van de Ven wrote:
> On 2/5/2020 11:14 AM, Frank Ch. Eigler wrote:
> > > > clear-linux elfutils
> > > >
> > > > indexed by filename by buildid
> >
> > > actually the clear side provides both build id and filename, the
> > > tools on the client (gdb and the like) try buildid first, and fall
> > > back to filename, and we just do both
> >
> > AIUI that works by using the "/usr/lib/debug/.build-id/HE/XCODE" as the
> > key, i.e., the build-id as a file name.
>
> sure but it's not "/usr/bin/true" of which you might have different versions over
> the lifespan of a distro through its updates
>
> (e.g. you can connect gdb to a process that got updated on disk later and still get the right answers)
Do you also handle the core file use case? There you might not have
the right /usr/bin/true version on disk.
Recent Fedora releases use /usr/lib/.build-id which you could provide
through the Fuse file system. On Fedora those are symlinks to the
binaries installed, but you could provide the actual binaries
instead. That would be somewhat similar to the debuginfod
/buildid/BUILDID/executable request then.
Cheers,
Mark
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-07 9:06 ` Mark Wielaard
@ 2020-02-07 14:46 ` Arjan van de Ven
0 siblings, 0 replies; 10+ messages in thread
From: Arjan van de Ven @ 2020-02-07 14:46 UTC (permalink / raw)
To: Mark Wielaard, Frank Ch. Eigler; +Cc: elfutils-devel, patrick.mccarty
On 2/7/2020 1:06 AM, Mark Wielaard wrote:
>> Some contrasts in a tabular form:
>>
>> clear-linux elfutils
>>
>> indexed by filename by buildid
>> client side sw fuse server apprx. none
>> server side sw plain file server debuginfod
>> server side disk unpacked, unified-namespace layout orig pkg set
>> multi-version maybe, if /usr/src/XXXX filenames unique no problem
>
> When using newer rpm then the filenames should be unique:
> https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo
>
> But I am not sure how it would handle multiple versions of
> executables.
since all tools ask for those by buildid those actually work even easier
>
>> multi-arch req. separate servers no problem
>> multi-distro req. separate servers one server ok
>
> One of the use cases of debuginfod is working with local/team builds
> for binaries not packaged by a distro. How does clear-linux handle that?
we allow for multiple URLs on the client side
(this is also how we do mirrors/etc)
supporting mirrors/CDN/... for the common files is imho almost more critical as supporting
multi-distro kind of things.. so a table like this should have a line for that.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-07 9:13 ` Mark Wielaard
@ 2020-02-07 14:47 ` Arjan van de Ven
2020-02-07 23:47 ` Mark Wielaard
0 siblings, 1 reply; 10+ messages in thread
From: Arjan van de Ven @ 2020-02-07 14:47 UTC (permalink / raw)
To: Mark Wielaard; +Cc: Frank Ch. Eigler, elfutils-devel, patrick.mccarty
On 2/7/2020 1:13 AM, Mark Wielaard wrote:
> Hi,
>
> On Wed, Feb 05, 2020 at 02:05:42PM -0800, Arjan van de Ven wrote:
>> On 2/5/2020 11:14 AM, Frank Ch. Eigler wrote:
>>>>> clear-linux elfutils
>>>>>
>>>>> indexed by filename by buildid
>>>
>>>> actually the clear side provides both build id and filename, the
>>>> tools on the client (gdb and the like) try buildid first, and fall
>>>> back to filename, and we just do both
>>>
>>> AIUI that works by using the "/usr/lib/debug/.build-id/HE/XCODE" as the
>>> key, i.e., the build-id as a file name.
>>
>> sure but it's not "/usr/bin/true" of which you might have different versions over
>> the lifespan of a distro through its updates
>>
>> (e.g. you can connect gdb to a process that got updated on disk later and still get the right answers)
>
> Do you also handle the core file use case? There you might not have
> the right /usr/bin/true version on disk.
but the core file has the buildid in it (usually)....
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-07 14:47 ` Arjan van de Ven
@ 2020-02-07 23:47 ` Mark Wielaard
2020-02-09 17:43 ` Arjan van de Ven
0 siblings, 1 reply; 10+ messages in thread
From: Mark Wielaard @ 2020-02-07 23:47 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: Frank Ch. Eigler, elfutils-devel, patrick.mccarty
Hi Arjan,
On Fri, 2020-02-07 at 06:47 -0800, Arjan van de Ven wrote:
> On 2/7/2020 1:13 AM, Mark Wielaard wrote:
> > On Wed, Feb 05, 2020 at 02:05:42PM -0800, Arjan van de Ven wrote:
> > > On 2/5/2020 11:14 AM, Frank Ch. Eigler wrote:
> > > > AIUI that works by using the "/usr/lib/debug/.build-
> > > > id/HE/XCODE" as the
> > > > key, i.e., the build-id as a file name.
> > >
> > > sure but it's not "/usr/bin/true" of which you might have
> > > different versions over
> > > the lifespan of a distro through its updates
> > >
> > > (e.g. you can connect gdb to a process that got updated on disk
> > > later and still get the right answers)
> >
> > Do you also handle the core file use case? There you might not have
> > the right /usr/bin/true version on disk.
>
> but the core file has the buildid in it (usually)....
Yes. I just simply don't know how the clr_debug_fuse.service handles
that. I can see how it could handle that. But I don't know if it
currently does.
I assumed that the buildid.tar files on
https://download.clearlinux.org/debuginfo/lib/.build-id/ would contain
the ELF image corresponding to the build-id. Just like the
buildid.debug.tar contains the separate .debug image. At least, that
would be how I would handle it. But it seems those files contain
symlinks. How do those symlinks get resolved?
The use case here is a core file generated on an older or newer
install. So you might not have the precise binary version installed on
your local system. Does the clr_debug_fuse.service provide the binary
ELF image corresponding to the buildid found in the core file? Or does
it (currently) only provide the .debug file?
Thanks,
Mark
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: contrasting elfutils debuginfod and clr-debug-info server
2020-02-07 23:47 ` Mark Wielaard
@ 2020-02-09 17:43 ` Arjan van de Ven
0 siblings, 0 replies; 10+ messages in thread
From: Arjan van de Ven @ 2020-02-09 17:43 UTC (permalink / raw)
To: Mark Wielaard; +Cc: Frank Ch. Eigler, elfutils-devel, patrick.mccarty
On 2/7/2020 3:47 PM, Mark Wielaard wrote:
> Hi Arjan,
>
> I assumed that the buildid.tar files on
> https://download.clearlinux.org/debuginfo/lib/.build-id/ would contain
> the ELF image corresponding to the build-id. Just like the
> buildid.debug.tar contains the separate .debug image. At least, that
> would be how I would handle it. But it seems those files contain
> symlinks. How do those symlinks get resolved?
I think you just found a bug, and I'll take that up with the current maintainer ;-)
we used to "resolve" symlinks on the server by replacing them at the time of content
preparation with their target, so that they become permanently the right content
seems some shuffle broke that; we'll get that fixed
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-02-09 17:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-05 17:33 contrasting elfutils debuginfod and clr-debug-info server Frank Ch. Eigler
2020-02-05 19:11 ` Arjan van de Ven
2020-02-05 19:14 ` Frank Ch. Eigler
2020-02-05 22:05 ` Arjan van de Ven
2020-02-07 9:13 ` Mark Wielaard
2020-02-07 14:47 ` Arjan van de Ven
2020-02-07 23:47 ` Mark Wielaard
2020-02-09 17:43 ` Arjan van de Ven
2020-02-07 9:06 ` Mark Wielaard
2020-02-07 14:46 ` Arjan van de Ven
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).