Closed Bug 1823692 Opened 2 years ago Closed 2 years ago

Storing the memory around the instruction IP is broken in 32-bit Linux builds

Categories

(Toolkit :: Crash Reporting, defect)

x86
Linux
defect

Tracking

()

RESOLVED FIXED
113 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox111 --- wontfix
firefox112 --- wontfix
firefox113 --- fixed

People

(Reporter: gsvelto, Assigned: afranchuk)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

As per title, toolkit/crashreporter/test/unit/test_crashreporter_crash.js fails on Linux 32-bit builds on this check. Disabling the oxidized writer and re-enabling the Breakpad writer solves the problem so chances are that the regressing bug was 1620993 but I need to test it.

Turns out this used to work, it broke with bug 1793784.

Regressed by: 1793784

Set release status flags based on info from the regressing bug 1793784

:gsvelto can you set the severity on this ticket? even though it was regressed in 110, trying to assess tracking for 112.

Flags: needinfo?(gsvelto)

I'm giving it S3 because it affects a subset of our crash reports and even for those affected we don't rely on this information just yet (but we want to).

Severity: -- → S3
Flags: needinfo?(gsvelto)
Assignee: nobody → afranchuk

This is due to the process context information having the incorrect type (i64) for general registers. As a result, all registers and the signal mask in 32bit crash reports have been incorrect.

I've submitted a PR to fix the issue here.

Using the newer version of the crash-context crate corrects the 32-bit Linux context structure,
which was the cause of the IP memory not being stored (among possibly other 32-bit Linux issues).

Status: NEW → ASSIGNED

Jake Shadle just cut a new release of minidump-writer. Let's pull it, audit it and this bug will be fixed as it'll pull in the new version of crash-context with your fix. Additionally we'll get a couple more small fixes on Linux which doesn't hurt.

Sounds great, will do so now.

This is slightly complicated by bitflags 2 being newly used in minidump-writer, where bitflags 1 is used in the rest of m-c. I doubt minidump-writer actually needs version 2, but that's what's in the latest release. And version 1 is used by a lot of crates in the graph.

Attachment #9326342 - Attachment description: Bug 1823692 - Storing the memory around the instruction IP is broken in 32-bit Linux builds r=gsvelto → Bug 1823692 - Storing the memory around the instruction IP is broken in 32-bit Linux builds r=gsvelto,#firefox-build-system-reviewers
Pushed by afranchuk@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c4f82df5d5ac Storing the memory around the instruction IP is broken in 32-bit Linux builds r=gsvelto,glandium,supply-chain-reviewers
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 113 Branch

The patch landed in nightly and beta is affected.
:afranchuk, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox112 to wontfix.

For more information, please visit auto_nag documentation.

Flags: needinfo?(afranchuk)

Using the newer version of the crash-context crate corrects the 32-bit Linux context structure,
which was the cause of the IP memory not being stored (among possibly other 32-bit Linux issues).

Original Revision: https://phabricator.services.mozilla.com/D174314

Uplift Approval Request

  • Fix verified in Nightly: yes
  • Explanation of risk level: The change fixes a bug on x86 Linux and does not affect other platforms.
  • Steps to reproduce for manual QE testing: None
  • Code covered by automated testing: yes
  • String changes made/needed: No
  • Needs manual QE test: no
  • User impact if declined: Minimal. Users on x86 Linux may, however unlikely, encounter a crash in the minidump writer due to invalid memory access.
  • Risk associated with taking this patch: Low
  • Is Android affected?: no
Flags: needinfo?(afranchuk)
Attachment #9327520 - Flags: approval-mozilla-beta?

Comment on attachment 9327520 [details]
Bug 1823692 - Storing the memory around the instruction IP is broken in 32-bit Linux builds r=gsvelto,#firefox-build-system-reviewers

Changing nomination to release

Attachment #9327520 - Flags: approval-mozilla-beta? → approval-mozilla-release?

Comment on attachment 9327520 [details]
Bug 1823692 - Storing the memory around the instruction IP is broken in 32-bit Linux builds r=gsvelto,#firefox-build-system-reviewers

This is an S3 110 regression and doesn't graft cleanly to release. I think it might be best for this to ride the 113 trains and go out on May 9th. If you feel strongly otherwise, please feel free to NI me.

Attachment #9327520 - Flags: approval-mozilla-release? → approval-mozilla-release-
Attachment #9327520 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: