fix: Prevent loading syscall-specific BPF programs for non-syscall events #4202
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Explain what the PR does
Previously, tracee incorrectly assumed all tailcall indexes were syscall IDs, leading to unnecessary loading of syscall-specific BPF programs. This caused a resource leak due to unused tracepoint attachments. The issue is now fixed by only removing the code which attaches these programs, as we explicitly define it in the event dependencies.
2. Explain how to test it
Run tracee with
sudo ./dist/tracee -e sched_process_exec
Before this fix, sys_enter and sys_exit events were attached, after this fix they are not anymore.
Use the following command to verify:
sudo bpftool link
3. Other comments