Skip to content

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Sep 30, 2022

Bumps github.com/cilium/ebpf from 0.7.0 to 0.9.3.

Release notes

Sourced from github.com/cilium/ebpf's releases.

v0.9.3 - Prevent livelocks loading BPF programs while profiling

This is a bugfix release for an endless loop that could occur when running a pprof session while loading a BPF program.

@​danobi published an article with a deep-dive into the problem: https://dxuuu.xyz/bpf-go-pprof.html.

If a thread receives a signal while blocked in BPF_PROG_LOAD, the verifier can cooperatively interrupt itself by checking pending signals for the thread and return -EAGAIN from the syscall to request userspace to retry.

During a Go pprof session, threads are routinely sent a SIGPROF to make them dump profiling information, which can lead to a runaway reaction if the program takes longer to verify than the interrupt frequency. To prevent this, the SIGPROF signal is now masked during BPF_PROG_LOAD.

What's Changed

New Contributors

Full Changelog: cilium/ebpf@v0.9.2...v0.9.3

v0.9.2

This release contains an important bugfix for users of Program.Test() and .Benchmark(). A kernel change was made that disallows empty packet buffers, with knock-on effects to BPF_PROG_RUN and, as a result, ebpf-go's detection routine for said feature. Users are strongly encouraged to upgrade. See #788 for more details.

The new features.HaveMapFlag() API was merged in this release, congrats @​paulcacheux!

Likewise, the link.K(ret)probeMulti() API was added by @​mmat11, bringing blazingly-fast bulk kprobe attachments to kernels 5.18 and newer.

Some improvements were made to verifier log handling. The VerifierError.Truncated flag can now reliably be used to determine if a program load should be retried due to the provided buffer size being too small. Use this to retry with incrementally growing log buffers for large or complex programs. The Log* fields in ProgramOptions are now thoroughly documented to this effect.

It also bumps the minimum Go version to 1.18, since 1.19 is now out.

What's Changed

... (truncated)

Commits
  • 8fceee5 internal/unix: add some documentation and tidy up stubs
  • 7038129 sys: use SIG_BLOCK and SIG_UNBLOCK from x/sys/unix
  • d0f3bfb README: update to reflect the project's situation in H2 2022
  • 1f78277 bpf2go: add flag for alternative output stem
  • e78a613 sys: mask SIGPROF during BPF_PROG_LOAD to prevent livelocks
  • c384e23 sys: add (un)maskProfilerSignal to disable SIGPROF
  • 0f5eeda sys: implement sigsetAdd
  • 9dd7b53 x/sys: bump to 220927 for PthreadSigmask
  • fd7d28b features: fix typo in createProgLoadAttr
  • 682bccb Semaphore: remove manual Go installation, expedite 'cache restore'
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/cilium/ebpf](https://github.com/cilium/ebpf) from 0.7.0 to 0.9.3.
- [Release notes](https://github.com/cilium/ebpf/releases)
- [Commits](cilium/ebpf@v0.7.0...v0.9.3)

---
updated-dependencies:
- dependency-name: github.com/cilium/ebpf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file go Pull requests that update Go code labels Sep 30, 2022
@dependabot dependabot bot changed the base branch from master to main December 1, 2022 18:23
@dependabot @github
Copy link
Author

dependabot bot commented on behalf of github Jan 16, 2023

Superseded by #39.

@dependabot dependabot bot closed this Jan 16, 2023
@dependabot dependabot bot deleted the dependabot/go_modules/github.com/cilium/ebpf-0.9.3 branch January 16, 2023 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update Go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant