You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upgrading github.com/cilium/ebpf from v0.20.0 to v0.21.0 causes Rust SSL/HTTP2 integration failures in OBI.
The failure is caused by a behavior change in link.OpenExecutable in cilium/ebpf v0.21.0: it now checks the file mode and rejects non-executable files (file ... is not executable).
OBI attaches uprobes to shared libraries such as libssl.so.3, which are commonly 0644 (readable, not executable bit set). This breaks probe attachment and prevents expected RED metrics from being produced.
Upgrading
github.com/cilium/ebpffromv0.20.0tov0.21.0causes Rust SSL/HTTP2 integration failures in OBI.The failure is caused by a behavior change in
link.OpenExecutableincilium/ebpf v0.21.0: it now checks the file mode and rejects non-executable files (file ... is not executable).OBI attaches uprobes to shared libraries such as
libssl.so.3, which are commonly0644(readable, not executable bit set). This breaks probe attachment and prevents expected RED metrics from being produced.Impact
fix(deps): update go(fix(deps): update go #1496)TestSuite_RustHTTP2/Rust_RED_metricsTestSuite_RustSSL(same probe path class)Observed Error Signal
From integration logs:
Reproduction
Set dependency to
github.com/cilium/ebpf v0.21.0in rootgo.mod.Run:
Observe RED metric assertion failures and uprobe/open-executable log errors.
Root Cause Details
Behavior difference by version
v0.20.0:link.OpenExecutableparses ELF and allows ET_EXEC/ET_DYN objects.v0.21.0:link.OpenExecutablenow performsos.Stat(path)and requires executable permission bits.This is incompatible with typical shared-library permissions used for uprobe targets.
Current Mitigation
Rollback to
github.com/cilium/ebpf v0.20.0(matchingmain) restores stability:TestSuite_RustHTTP2passesTestSuite_RustSSLpassesWhat We Need
A forward-compatible path to re-enable upgrade to
v0.21.0+without losing shared-library uprobe support.Candidate Fix Directions
OpenExecutablepermission gating for shared libs (if upstream exposes a suitable API path).cilium/ebpfon library uprobe usage where target files are ET_DYN but not executable-mode.Acceptance Criteria
github.com/cilium/ebpf v0.21.0or newer.go.modcan keep upgraded cilium/ebpf version without local workarounds that reduce observability coverage.