Comment 2 for bug 1929899

Revision history for this message
Matthew Berryman (mattjb) wrote :

ii iproute2 5.10.0-4ubuntu1 amd64 networking and traffic control tools
ii libbpf0:amd64 1:0.3-2ubuntu1 amd64 eBPF helper library (shared library)

There was no bpf_object__open_file symbol present.
For reference I ran:
➜ sha256sum /usr/lib/x86_64-linux-gnu/libbpf.so.0
f07eec45762596dd43e129344f106cf020b163b1831ae9df3e0a018371c3a3ac /usr/lib/x86_64-linux-gnu/libbpf.so.0

Running
➜ sudo apt-get clean
➜ sudo apt-get install --reinstall libbpf0:amd64
resulted in same .so with missing symbol.

I figured out the problem is happening on install, because the downloaded deb does have an so with that symbol:
➜ cp /var/cache/apt/archives/libbpf0_1%3a0.3-2ubuntu1_amd64.deb .
➜ ar x libbpf0_1%3a0.3-2ubuntu1_amd64.deb
➜ tar xf data.tar.xz
➜ nm -gDC usr/lib/x86_64-linux-gnu/libbpf.so.0 | grep bpf_object__open_file
000000000001e090 T bpf_object__open_file@@LIBBPF_0.0.6

and also a different sha256:
➜ sha256sum usr/lib/x86_64-linux-gnu/libbpf.so.0
d517e897a7d36b706f62fe7d71e7a9dd8bc50c186c507264b10fb1e5d9ccabd7 usr/lib/x86_64-linux-gnu/libbpf.so.0

Looking into the versions in /usr/lib/x86_64-linux-gnu there was a libbpf.so.0.9.0 version installed and symlinked from libbpf.so > libbpf.so.0 > libbpf.so.0.9.0 rather than the libbpf.so.0.3.0 that was installed back when I was playing with bpftrace, however I am unsure how it ended up in /usr/lib and not /usr/local/lib unless there was a separate .deb I installed (I forget and neither /var/log/apt/history.log.* nor /var/log/dpkg.log.* go back that far to the time the libbpf.so.0.9.0 was installed). Anyway, removing that and setting up the symlinks has fixed it, although shouldn't a failure to symlink the version being installed be flagged somewhere?