Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve handling of the auxiliary vector on Linux #27

Closed
gabrielesvelto opened this issue May 24, 2022 · 1 comment · Fixed by #127
Closed

Improve handling of the auxiliary vector on Linux #27

gabrielesvelto opened this issue May 24, 2022 · 1 comment · Fixed by #127

Comments

@gabrielesvelto
Copy link
Contributor

gabrielesvelto commented May 24, 2022

Right now if we can't read the auxiliary vector by parsing the corresponding file under /proc minidump generation fails. This is a known cause of failures to write minidumps on Android (see bug 1644486 on our tracker for example) and Linux because sometimes the generator process doesn't have permission to access that file. This accounts for at least one out of three failures when writing Linux/Android minidumps.

We currently use the auxiliary vector in three different places:

Neither of those uses is strictly needed. In fact the first two instance already handle the case where the relevant entry in the auxiliary vector isn't available, and the third one is just not critical. We could just skip writing the DSO stream and everybody would be still perfectly happy.

So I propose to do a couple of things to improve this situation:

  • Make not being able to read the auxiliary vector a non-fatal failure (this is easy)
  • Change how it's read to have a fallback in case we can't access /proc. Notably the auxiliary vector is at a known location in memory so we could pull it out from there using ptrace().
@gabrielesvelto
Copy link
Contributor Author

More resources for whoever will work on this bug:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant