weaveworks / tcptracer-bpf

eBPF program using kprobes to trace TCP events without run-time compilation dependencies
Apache License 2.0
410 stars 61 forks source link

guess: tie the state machine to a single thread #30

Closed alban closed 7 years ago

alban commented 7 years ago

By default, Golang does not guarantee that a go routine will always be executed on the same system thread (tid). During the guessing work, the tcp connections could be generated from various threads. The ebpf program was accepting any connections as long as it come from the correct process, regardless of threads.

This patch changes this to have stricter rules:


TODO:

/cc @iaguis @schu

alban commented 7 years ago

Unfortunately, @schu managed to reproduce the issue even with this PR.

But I think this PR is an improvement, even if it does not fix the issue.

schu commented 7 years ago

We continue testing 311_container_to_container_edge_with_ebpf_test. What we know: