ebpf: update check for known faulty Ubuntu kernels

With c75700fe04 we added code to detect
Ubuntu Xenial kernels with a regression in the eBPF subsystem in order
to gently fallback to procfs scanning on such systems (and not crash the
host system by running eBPF code).

With the latest kernel update for Ubuntu Xenial, the bug was fixed:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1763454

Therefore we can update the added check with an upper limit and make
sure that eBPF connection tracking only is disabled on kernels within
the range having the bug.

xref: https://github.com/weaveworks/scope/issues/3131
This commit is contained in:
Michael Schubert
2018-05-23 11:20:12 +02:00
parent a7c7f89897
commit 7bb1e38de3
2 changed files with 6 additions and 2 deletions

View File

@@ -106,8 +106,7 @@ func isKernelSupported() error {
// not "119-ish", so allow it.
return nil
}
// TODO: give the check an upper limit once the bug is fixed
if major == 4 && minor == 4 && abiNumber >= 119 {
if major == 4 && minor == 4 && abiNumber >= 119 && abiNumber < 127 {
// https://github.com/weaveworks/scope/issues/3131
// https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1763454
return fmt.Errorf("got Ubuntu kernel %s with known bug", release)

View File

@@ -273,6 +273,11 @@ func TestIsKernelSupported(t *testing.T) {
"#143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018",
false,
},
{
"4.4.0-127-generic",
"#153-Ubuntu SMP Sat May 19 10:58:46 UTC 2018",
true,
},
{
"4.4.0-116-generic",
"#140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018",