retis-org / retis

Tracing packets in the Linux networking stack & friends
https://retis.readthedocs.io/en/stable/
100 stars 14 forks source link

Upgrade to libbpf_rs v0.21.2 #216

Closed atenart closed 1 year ago

atenart commented 1 year ago

WIP -> RFC. Now waiting on libbpf_rs to release a version including the fix we need.

We should also have a look at BPF compilation errors and how they are reported. It seemed to me there were not as verbose as before (eg. not including the real underlying error).

atenart commented 1 year ago

Looks like ubuntu 22.04 only has rustc v1.66 while some of our dependencies now requires >= 1.67. Rustc 1.67 is only found in ubuntu 23.04, which doesn't have a vagrant vm available right now (as far as I can see)...

Not sure of the best solution here:

@amorenoz thoughts?

amorenoz commented 1 year ago

Isn't this ubuntu 23.04: https://app.vagrantup.com/ubuntu/boxes/lunar64 ?

atenart commented 1 year ago

Isn't this ubuntu 23.04: https://app.vagrantup.com/ubuntu/boxes/lunar64 ?

Looks like this one isn't suited for the libvirt provider. When looking at what is supported[1], Ubuntu 22.04 is the latest supported (except for some custom builds I'm not sure to trust).

[1] https://app.vagrantup.com/boxes/search?utf8=%E2%9C%93&sort=downloads&provider=libvirt&q=ubuntu

amorenoz commented 1 year ago

Firstly, one question: what exactly requires rust > 1.67? That's just out of curiosity.

Nevertheless, looking at the scarcity of VMs that we can use, I think we should reconsider how we build the test binaries. The idea of the VMs is that we can test it works on them, not that we necessarily can build using their standard toolchain. We even use rustup in our copr packages. We should ensure we can run on 22.04 as it's the LTS release so I'm leaning towards using rustup (directly in the VM or using a container).

atenart commented 1 year ago

Firstly, one question: what exactly requires rust > 1.67? That's just out of curiosity.

time-macros (a dependency of simplelog). There might be others though.

Nevertheless, looking at the scarcity of VMs that we can use, I think we should reconsider how we build the test binaries. The idea of the VMs is that we can test it works on them, not that we necessarily can build using their standard toolchain. We even use rustup in our copr packages. We should ensure we can run on 22.04 as it's the LTS release so I'm leaning towards using rustup (directly in the VM or using a container).

Agreed.