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

Bug fix: correctly handle spaces in /proc/pid/maps pathnames #553

Merged
merged 8 commits into from
Aug 18, 2023

Conversation

MasonRemaley
Copy link
Contributor

Prior to this change, pathnames were parsed from /proc/pid/maps using s.split(' '). This is incorrect, because pathnames may contain spaces.

In practice, on the relevant operating systems, this resulted in truncation of pathnames containing spaces. This lead to a failure resolve any symbols or offsets, which in turn causes the stack trace to be printed containing only <unknown>s to the end user.

This PR corrects the parsing code, resolving the issue.

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 524944B
Difference: +6048B (1.17%)

1 similar comment
@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 524944B
Difference: +6048B (1.17%)

@MasonRemaley
Copy link
Contributor Author

MasonRemaley commented Jul 24, 2023

Side note--I tried to make the least invasive change possible since I'm not familiar with the codebase. That being said, is parsing /proc/pid/maps actually necessary?

If I'm reading the code correctly it's parsing the whole thing just to get the path to the main program. I would think there are simpler ways to get that info, but it's possible I'm missing something!

[EDIT] Okay yeah--you could open /proc/self/exe directly, and then you wouldn't need to parse /proc/pid/maps anymore. I don't have time to make that change right now though, this PR is still an improvement to the status quo either way!

@bjorn3
Copy link
Member

bjorn3 commented Jul 24, 2023

/proc/self/exe doesn't help with dynamically linked libraries.

Edit: Looks like you are right. It seems to only be used for the current executable and not shared libraries.

@philipc
Copy link
Contributor

philipc commented Jul 24, 2023

There's an edge case where explicitly running ld.so gives the wrong path; see #488

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 524944B
Difference: +6048B (1.17%)

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 524944B
Difference: +6048B (1.17%)

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 520312B
Difference: +1416B (0.27%)

@MasonRemaley
Copy link
Contributor Author

There's an edge case where explicitly running ld.so gives the wrong path; see #488

Wasn't aware of this, thanks for the link!

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518896B
Updated binary size: 520216B
Difference: +1320B (0.25%)

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518904B
Updated binary size: 520208B
Difference: +1304B (0.25%)

@klensy
Copy link
Contributor

klensy commented Jul 26, 2023

Looking at https://github.com/torvalds/linux/blob/18b44bc5a67275641fb26f2c54ba7eef80ac5950/fs/proc/task_mmu.c#L254 i think that multiple spaces isn't possible anywhere except around pathname?

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 519000B
Updated binary size: 519960B
Difference: +960B (0.18%)

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 519000B
Updated binary size: 520024B
Difference: +1024B (0.20%)

@MasonRemaley
Copy link
Contributor Author

MasonRemaley commented Jul 26, 2023

Looking at https://github.com/torvalds/linux/blob/18b44bc5a67275641fb26f2c54ba7eef80ac5950/fs/proc/task_mmu.c#L254 i think that multiple spaces isn't possible anywhere except around pathname?

I'm being intentionally forgiving--

If my game crashes most players will just refund it, but assuming they consent I'll at least get a stack trace so I can fix it for the next person. If some day Linux decides to start aligning other elements by column too, I don't want to end up with a nightmare where I have to drop everything to figure out why my stack traces are failing before missing too much debug info.

[EDIT] Clarifying to make this PR easier to review--backtrace-rs does fail today on Linux on any executable stored at a path containing a space, this PR fixes that. The above discussion is just about how forgiving the parser should be, it's not questioning whether this fix is necessary.

Copy link
Member

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh hey, thank you so much!

  1. Yes, as discussed, it unfortunately is necessary to parse proc/${pid}/maps due to the "fun" edge-cases if we want this backtrace to be consistently correct. It's acceptable to throw away more data than we currently throw away and adjust strictness, but not to avoid parsing, as avoiding parsing opens up far more problems than it solves. Case in point: the parse wasn't even right.
  2. Unless we find some other way around the edge-cases (and I'm not confident ld.so is the only one!). I won't ask you to waste your time on that, however.
  3. Yes, I agree that we don't need to require strict consistency in spacing with the existing format. There's no need to be too brittle, and even if the rendering of /proc/*/maps changes, libstd will be expected to have its backtrace work consistently across all kernel versions.

This PR looks great overall! I just see a few silly nits.

src/symbolize/gimli/parse_running_mmaps_unix.rs Outdated Show resolved Hide resolved
src/symbolize/gimli/parse_running_mmaps_unix.rs Outdated Show resolved Hide resolved
src/symbolize/gimli/parse_running_mmaps_unix.rs Outdated Show resolved Hide resolved
MasonRemaley and others added 2 commits July 30, 2023 16:04
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518984B
Updated binary size: 520024B
Difference: +1040B (0.20%)

2 similar comments
@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518984B
Updated binary size: 520024B
Difference: +1040B (0.20%)

@github-actions
Copy link

Below is the size of a hello-world Rust program linked with libstd with backtrace.

Original binary size: 518984B
Updated binary size: 520024B
Difference: +1040B (0.20%)

@MasonRemaley
Copy link
Contributor Author

Oh hey, thank you so much!

You're welcome! :)

  1. Yes, as discussed, it unfortunately is necessary to parse proc/${pid}/maps due to the "fun" edge-cases if we want this backtrace to be consistently correct. It's acceptable to throw away more data than we currently throw away and adjust strictness, but not to avoid parsing, as avoiding parsing opens up far more problems than it solves. Case in point: the parse wasn't even right.

  2. Unless we find some other way around the edge-cases (and I'm not confident ld.so is the only one!). I won't ask you to waste your time on that, however.

That makes sense!

This PR looks great overall! I just see a few silly nits.

Thanks! Merged your suggestions--apologies for the typos!

@MasonRemaley
Copy link
Contributor Author

Hey! Just checking in to see if you need any other changes for this to be mergeable. :)

Copy link
Member

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly for my brain to get back from outer space!

@workingjubilee workingjubilee merged commit d008d39 into rust-lang:master Aug 18, 2023
35 checks passed
@MasonRemaley
Copy link
Contributor Author

Haha no worries, glad to get the fix in!

kodiakhq bot pushed a commit to X-oss-byte/Canary-nextjs that referenced this pull request May 1, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [backtrace](https://togithub.com/rust-lang/backtrace-rs) | dependencies | patch | `0.3` -> `0.3.71` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>rust-lang/backtrace-rs (backtrace)</summary>

### [`v0.3.71`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.71)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71)

This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.

##### What's Changed

-   Make sgx functions exist with cfg(miri) by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#591
-   Update version of cc crate by [@&#8203;jfgoog](https://togithub.com/jfgoog) in [rust-lang/backtrace-rs#592
-   Pull back MSRV on Windows by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#598
-   Force frame pointers on all i686 tests by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#601
-   Use rustc from stage0 instead of stage0-sysroot by [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) in [rust-lang/backtrace-rs#602
-   Cut backtrace 0.3.71 by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#599

##### New Contributors

-   [@&#8203;jfgoog](https://togithub.com/jfgoog) made their first contribution in [rust-lang/backtrace-rs#592
-   [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) made their first contribution in [rust-lang/backtrace-rs#602

**Full Changelog**: rust-lang/backtrace-rs@0.3.70...0.3.71

### [`v0.3.70`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.70)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.70)

##### New API

-   A `BacktraceFrame` can now have `resolve(&mut self)` called on it thanks to [@&#8203;fraillt](https://togithub.com/fraillt) in [rust-lang/backtrace-rs#526

##### Platform Support

We added support for new platforms in this release!

-   Thanks to [@&#8203;bzEq](https://togithub.com/bzEq) in [rust-lang/backtrace-rs#508 we now have AIX support!
-   Thanks to [@&#8203;sthibaul](https://togithub.com/sthibaul) in [rust-lang/backtrace-rs#567 we now have GNU/Hurd support!
-   Thanks to [@&#8203;dpaoliello](https://togithub.com/dpaoliello) in [rust-lang/backtrace-rs#587 we now support "emulation-compatible" AArch64 Windows (aka arm64ec)

##### Windows

-   Rewrite msvc backtrace support to be much faster on 64-bit platforms by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#569
-   Fix i686-pc-windows-gnu missing dbghelp module by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#571
-   Fix build errors on `thumbv7a-*-windows-msvc` targets by [@&#8203;kleisauke](https://togithub.com/kleisauke) in [rust-lang/backtrace-rs#573
-   Fix panic in backtrace symbolication on win7 by [@&#8203;roblabla](https://togithub.com/roblabla) in [rust-lang/backtrace-rs#578
-   remove few unused windows ffi fn by [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#576
-   Make dbghelp look for PDBs next to their exe/dll. by [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) in [rust-lang/backtrace-rs#584
-   Revert 32-bit dbghelp to a version WINE (presumably) likes by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#588
-   Update for Win10+ by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#589

##### SGX

Thanks to

-   Adjust frame IP in SGX relative to image base by [@&#8203;mzohreva](https://togithub.com/mzohreva) in [rust-lang/backtrace-rs#566

##### Internals

We did a bunch more work on our CI and internal cleanups

-   Modularise CI workflow and validate outputs for binary size checks. by [@&#8203;detly](https://togithub.com/detly) in [rust-lang/backtrace-rs#549
-   Commit Cargo.lock by [@&#8203;bjorn3](https://togithub.com/bjorn3) in [rust-lang/backtrace-rs#562
-   Enable calling build.rs externally v2 by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#568
-   Upgrade to 2021 ed and inline panics by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#538
-   Fix deny(unused) of an unused import with SGX + Miri by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#581
-   Fix unused_imports warning on latest nightly by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#575
-   Fix CI by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#582
-   Use `addr_of!` by [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) in [rust-lang/backtrace-rs#585
-   Write down MSRV policy by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#561
-   Apply clippy::uninlined_format_args fixes by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#486
-   ignore clippy lints in `symbolize/gimli/stash.rs` by [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) in [rust-lang/backtrace-rs#586

##### New Contributors

-   [@&#8203;nyurik](https://togithub.com/nyurik) made their first contribution in [rust-lang/backtrace-rs#538
-   [@&#8203;bzEq](https://togithub.com/bzEq) made their first contribution in [rust-lang/backtrace-rs#508
-   [@&#8203;bjorn3](https://togithub.com/bjorn3) made their first contribution in [rust-lang/backtrace-rs#562
-   [@&#8203;sthibaul](https://togithub.com/sthibaul) made their first contribution in [rust-lang/backtrace-rs#567
-   [@&#8203;mzohreva](https://togithub.com/mzohreva) made their first contribution in [rust-lang/backtrace-rs#566
-   [@&#8203;wesleywiser](https://togithub.com/wesleywiser) made their first contribution in [rust-lang/backtrace-rs#569
-   [@&#8203;kleisauke](https://togithub.com/kleisauke) made their first contribution in [rust-lang/backtrace-rs#573
-   [@&#8203;roblabla](https://togithub.com/roblabla) made their first contribution in [rust-lang/backtrace-rs#578
-   [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) made their first contribution in [rust-lang/backtrace-rs#584
-   [@&#8203;dpaoliello](https://togithub.com/dpaoliello) made their first contribution in [rust-lang/backtrace-rs#587
-   [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) made their first contribution in [rust-lang/backtrace-rs#585
-   [@&#8203;fraillt](https://togithub.com/fraillt) made their first contribution in [rust-lang/backtrace-rs#526
-   [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) made their first contribution in [rust-lang/backtrace-rs#586

**Full Changelog**: rust-lang/backtrace-rs@0.3.69...0.3.70

### [`v0.3.69`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.69)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.68...0.3.69)

Thank you everyone for contributing to a very nice release!

##### Tracking Binary Size

As backtrace-rs is compiled into every single Rust program, we have begun tracking its binary size in order to find ways to reduce its impact on programs that only minimally use backtraces over time. This change is mostly relevant to this crate's CI, and has been implemented by [@&#8203;Kobzol](https://togithub.com/Kobzol) and [@&#8203;detly](https://togithub.com/detly) over PRs [#&#8203;542](https://togithub.com/rust-lang/backtrace-rs/issues/542), [#&#8203;544](https://togithub.com/rust-lang/backtrace-rs/issues/544), [#&#8203;546](https://togithub.com/rust-lang/backtrace-rs/issues/546), and [#&#8203;550](https://togithub.com/rust-lang/backtrace-rs/issues/550)!

##### Platform-Specific Fixes

As usual, the majority of PRs for this release only affect 1 or 2 platforms. Technically, even the binary-size tracking is only implemented to track binary size on `x86_64-unknown-linux-gnu`.

##### fuchsia

Backtraces for Fuchsia will now uses extended symbolization thanks to [@&#8203;liudangyi](https://togithub.com/liudangyi) in [rust-lang/backtrace-rs#559

##### unix (with `procfs`)

Many Unix-y platforms support `/proc`, including Linux and FreeBSD, but not OpenBSD. For those which do, backtrace uses `/proc/self/maps` to assist in recovering the trace. We did not parse the output of `/proc/self/maps` in a way that accounted for the fact that it may have spaces in path names, but this was fixed thanks to [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) in [rust-lang/backtrace-rs#553

##### windows-msvc

Some changes that should help binary size specifically on Windows MSVC targets, or at least compile times, have already been implemented, thanks to [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#543 omitting compiling-in ELF backtrace capabilities. We don't have full binary size tracking for all major supported operating systems yet, so we believe this is worth 30KiB but that's more of an estimate than hard stats.

##### Dependency Management

-   Update addr2line and object dependencies by [@&#8203;philipc](https://togithub.com/philipc) in [rust-lang/backtrace-rs#557
-   Exclude ci directory from packaged crate by [@&#8203;mulkieran](https://togithub.com/mulkieran) in [rust-lang/backtrace-rs#555
-   Enable calling build.rs directly from std/build.rs by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#556

##### New Contributors

-   [@&#8203;Kobzol](https://togithub.com/Kobzol) made their first contribution in [rust-lang/backtrace-rs#542
-   [@&#8203;detly](https://togithub.com/detly) made their first contribution in [rust-lang/backtrace-rs#550
-   [@&#8203;liudangyi](https://togithub.com/liudangyi) made their first contribution in [rust-lang/backtrace-rs#559
-   [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) made their first contribution in [rust-lang/backtrace-rs#553
-   [@&#8203;mulkieran](https://togithub.com/mulkieran) made their first contribution in [rust-lang/backtrace-rs#555
-   [@&#8203;pitaj](https://togithub.com/pitaj) made their first contribution in [rust-lang/backtrace-rs#556
-   [@&#8203;klensy](https://togithub.com/klensy) made their first contribution in [rust-lang/backtrace-rs#543

**Full Changelog**: rust-lang/backtrace-rs@0.3.68...0.3.69

### [`v0.3.68`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.68)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.67...0.3.68)

A bunch of behind-the-scenes work on upgrading CI has finally got things to a place where we can do confident releases again, so hopefully the next backtrace version will not take 6 months! Thanks to everyone who contributed to that! Most of the user-facing changes are about dependency updates and consequent improved platform compatibility, including with split DWARF. A few new functions on BacktraceFmt should also make it easier to inject additional text into backtrace's output.

-   Adapt to new Fuchsia target name by [@&#8203;flba-eb](https://togithub.com/flba-eb) in [rust-lang/backtrace-rs#509
-   armv7 PSVita OS support by [@&#8203;nikarh](https://togithub.com/nikarh) in [rust-lang/backtrace-rs#523
-   Upgrade addr2line and properly handle split DWARF on Linux by [@&#8203;khuey](https://togithub.com/khuey) in [rust-lang/backtrace-rs#513
-   deps: update miniz_oxide to 0.7 by [@&#8203;poliorcetics](https://togithub.com/poliorcetics) in [rust-lang/backtrace-rs#521
-   Add print in BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#527
-   Bump object to 0.31 by [@&#8203;lnicola](https://togithub.com/lnicola) in [rust-lang/backtrace-rs#522
-   Add an exception for QNX Neutrino 7.0 as a 'no-op' platform by [@&#8203;samkearney](https://togithub.com/samkearney) in [rust-lang/backtrace-rs#529
-   Use mmap64 on Linux. by [@&#8203;mikebenfield](https://togithub.com/mikebenfield) in [rust-lang/backtrace-rs#501
-   dbghlp: Make mutex name unique to the process by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#518
-   gimli add netbsd to handle dl_iterate_phdr as well. by [@&#8203;devnexen](https://togithub.com/devnexen) in [rust-lang/backtrace-rs#512
-   Add other apple targets to libunwind workaround by [@&#8203;thomcc](https://togithub.com/thomcc) in [rust-lang/backtrace-rs#516
-   Add fmt method for BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#532

##### New Contributors

-   [@&#8203;bwmf2](https://togithub.com/bwmf2) made their first contribution in [rust-lang/backtrace-rs#515
-   [@&#8203;flba-eb](https://togithub.com/flba-eb) made their first contribution in [rust-lang/backtrace-rs#509
-   [@&#8203;nikarh](https://togithub.com/nikarh) made their first contribution in [rust-lang/backtrace-rs#523
-   [@&#8203;poliorcetics](https://togithub.com/poliorcetics) made their first contribution in [rust-lang/backtrace-rs#521
-   [@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) made their first contribution in [rust-lang/backtrace-rs#524
-   [@&#8203;chenyukang](https://togithub.com/chenyukang) made their first contribution in [rust-lang/backtrace-rs#527
-   [@&#8203;lnicola](https://togithub.com/lnicola) made their first contribution in [rust-lang/backtrace-rs#522
-   [@&#8203;samkearney](https://togithub.com/samkearney) made their first contribution in [rust-lang/backtrace-rs#529
-   [@&#8203;mikebenfield](https://togithub.com/mikebenfield) made their first contribution in [rust-lang/backtrace-rs#501
-   [@&#8203;devnexen](https://togithub.com/devnexen) made their first contribution in [rust-lang/backtrace-rs#512
-   [@&#8203;thomcc](https://togithub.com/thomcc) made their first contribution in [rust-lang/backtrace-rs#516
-   [@&#8203;workingjubilee](https://togithub.com/workingjubilee) made their first contribution in [rust-lang/backtrace-rs#533
-   [@&#8203;chriswailes](https://togithub.com/chriswailes) made their first contribution in [rust-lang/backtrace-rs#534

**Full Changelog**: rust-lang/backtrace-rs@0.3.67...0.3.68

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Canary-nextjs).
kodiakhq bot pushed a commit to X-oss-byte/Nextjs that referenced this pull request May 1, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [backtrace](https://togithub.com/rust-lang/backtrace-rs) | dependencies | patch | `0.3` -> `0.3.71` |

---

### Release Notes

<details>
<summary>rust-lang/backtrace-rs (backtrace)</summary>

### [`v0.3.71`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.71)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71)

This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.

##### What's Changed

-   Make sgx functions exist with cfg(miri) by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#591
-   Update version of cc crate by [@&#8203;jfgoog](https://togithub.com/jfgoog) in [rust-lang/backtrace-rs#592
-   Pull back MSRV on Windows by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#598
-   Force frame pointers on all i686 tests by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#601
-   Use rustc from stage0 instead of stage0-sysroot by [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) in [rust-lang/backtrace-rs#602
-   Cut backtrace 0.3.71 by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#599

##### New Contributors

-   [@&#8203;jfgoog](https://togithub.com/jfgoog) made their first contribution in [rust-lang/backtrace-rs#592
-   [@&#8203;Nilstrieb](https://togithub.com/Nilstrieb) made their first contribution in [rust-lang/backtrace-rs#602

**Full Changelog**: rust-lang/backtrace-rs@0.3.70...0.3.71

### [`v0.3.70`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.70)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.70)

##### New API

-   A `BacktraceFrame` can now have `resolve(&mut self)` called on it thanks to [@&#8203;fraillt](https://togithub.com/fraillt) in [rust-lang/backtrace-rs#526

##### Platform Support

We added support for new platforms in this release!

-   Thanks to [@&#8203;bzEq](https://togithub.com/bzEq) in [rust-lang/backtrace-rs#508 we now have AIX support!
-   Thanks to [@&#8203;sthibaul](https://togithub.com/sthibaul) in [rust-lang/backtrace-rs#567 we now have GNU/Hurd support!
-   Thanks to [@&#8203;dpaoliello](https://togithub.com/dpaoliello) in [rust-lang/backtrace-rs#587 we now support "emulation-compatible" AArch64 Windows (aka arm64ec)

##### Windows

-   Rewrite msvc backtrace support to be much faster on 64-bit platforms by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#569
-   Fix i686-pc-windows-gnu missing dbghelp module by [@&#8203;wesleywiser](https://togithub.com/wesleywiser) in [rust-lang/backtrace-rs#571
-   Fix build errors on `thumbv7a-*-windows-msvc` targets by [@&#8203;kleisauke](https://togithub.com/kleisauke) in [rust-lang/backtrace-rs#573
-   Fix panic in backtrace symbolication on win7 by [@&#8203;roblabla](https://togithub.com/roblabla) in [rust-lang/backtrace-rs#578
-   remove few unused windows ffi fn by [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#576
-   Make dbghelp look for PDBs next to their exe/dll. by [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) in [rust-lang/backtrace-rs#584
-   Revert 32-bit dbghelp to a version WINE (presumably) likes by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#588
-   Update for Win10+ by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#589

##### SGX

Thanks to

-   Adjust frame IP in SGX relative to image base by [@&#8203;mzohreva](https://togithub.com/mzohreva) in [rust-lang/backtrace-rs#566

##### Internals

We did a bunch more work on our CI and internal cleanups

-   Modularise CI workflow and validate outputs for binary size checks. by [@&#8203;detly](https://togithub.com/detly) in [rust-lang/backtrace-rs#549
-   Commit Cargo.lock by [@&#8203;bjorn3](https://togithub.com/bjorn3) in [rust-lang/backtrace-rs#562
-   Enable calling build.rs externally v2 by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#568
-   Upgrade to 2021 ed and inline panics by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#538
-   Fix deny(unused) of an unused import with SGX + Miri by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#581
-   Fix unused_imports warning on latest nightly by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#575
-   Fix CI by [@&#8203;saethlin](https://togithub.com/saethlin) in [rust-lang/backtrace-rs#582
-   Use `addr_of!` by [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) in [rust-lang/backtrace-rs#585
-   Write down MSRV policy by [@&#8203;workingjubilee](https://togithub.com/workingjubilee) in [rust-lang/backtrace-rs#561
-   Apply clippy::uninlined_format_args fixes by [@&#8203;nyurik](https://togithub.com/nyurik) in [rust-lang/backtrace-rs#486
-   ignore clippy lints in `symbolize/gimli/stash.rs` by [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) in [rust-lang/backtrace-rs#586

##### New Contributors

-   [@&#8203;nyurik](https://togithub.com/nyurik) made their first contribution in [rust-lang/backtrace-rs#538
-   [@&#8203;bzEq](https://togithub.com/bzEq) made their first contribution in [rust-lang/backtrace-rs#508
-   [@&#8203;bjorn3](https://togithub.com/bjorn3) made their first contribution in [rust-lang/backtrace-rs#562
-   [@&#8203;sthibaul](https://togithub.com/sthibaul) made their first contribution in [rust-lang/backtrace-rs#567
-   [@&#8203;mzohreva](https://togithub.com/mzohreva) made their first contribution in [rust-lang/backtrace-rs#566
-   [@&#8203;wesleywiser](https://togithub.com/wesleywiser) made their first contribution in [rust-lang/backtrace-rs#569
-   [@&#8203;kleisauke](https://togithub.com/kleisauke) made their first contribution in [rust-lang/backtrace-rs#573
-   [@&#8203;roblabla](https://togithub.com/roblabla) made their first contribution in [rust-lang/backtrace-rs#578
-   [@&#8203;michaelwoerister](https://togithub.com/michaelwoerister) made their first contribution in [rust-lang/backtrace-rs#584
-   [@&#8203;dpaoliello](https://togithub.com/dpaoliello) made their first contribution in [rust-lang/backtrace-rs#587
-   [@&#8203;GrigorenkoPV](https://togithub.com/GrigorenkoPV) made their first contribution in [rust-lang/backtrace-rs#585
-   [@&#8203;fraillt](https://togithub.com/fraillt) made their first contribution in [rust-lang/backtrace-rs#526
-   [@&#8203;onur-ozkan](https://togithub.com/onur-ozkan) made their first contribution in [rust-lang/backtrace-rs#586

**Full Changelog**: rust-lang/backtrace-rs@0.3.69...0.3.70

### [`v0.3.69`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.69)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.68...0.3.69)

Thank you everyone for contributing to a very nice release!

##### Tracking Binary Size

As backtrace-rs is compiled into every single Rust program, we have begun tracking its binary size in order to find ways to reduce its impact on programs that only minimally use backtraces over time. This change is mostly relevant to this crate's CI, and has been implemented by [@&#8203;Kobzol](https://togithub.com/Kobzol) and [@&#8203;detly](https://togithub.com/detly) over PRs [#&#8203;542](https://togithub.com/rust-lang/backtrace-rs/issues/542), [#&#8203;544](https://togithub.com/rust-lang/backtrace-rs/issues/544), [#&#8203;546](https://togithub.com/rust-lang/backtrace-rs/issues/546), and [#&#8203;550](https://togithub.com/rust-lang/backtrace-rs/issues/550)!

##### Platform-Specific Fixes

As usual, the majority of PRs for this release only affect 1 or 2 platforms. Technically, even the binary-size tracking is only implemented to track binary size on `x86_64-unknown-linux-gnu`.

##### fuchsia

Backtraces for Fuchsia will now uses extended symbolization thanks to [@&#8203;liudangyi](https://togithub.com/liudangyi) in [rust-lang/backtrace-rs#559

##### unix (with `procfs`)

Many Unix-y platforms support `/proc`, including Linux and FreeBSD, but not OpenBSD. For those which do, backtrace uses `/proc/self/maps` to assist in recovering the trace. We did not parse the output of `/proc/self/maps` in a way that accounted for the fact that it may have spaces in path names, but this was fixed thanks to [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) in [rust-lang/backtrace-rs#553

##### windows-msvc

Some changes that should help binary size specifically on Windows MSVC targets, or at least compile times, have already been implemented, thanks to [@&#8203;klensy](https://togithub.com/klensy) in [rust-lang/backtrace-rs#543 omitting compiling-in ELF backtrace capabilities. We don't have full binary size tracking for all major supported operating systems yet, so we believe this is worth 30KiB but that's more of an estimate than hard stats.

##### Dependency Management

-   Update addr2line and object dependencies by [@&#8203;philipc](https://togithub.com/philipc) in [rust-lang/backtrace-rs#557
-   Exclude ci directory from packaged crate by [@&#8203;mulkieran](https://togithub.com/mulkieran) in [rust-lang/backtrace-rs#555
-   Enable calling build.rs directly from std/build.rs by [@&#8203;pitaj](https://togithub.com/pitaj) in [rust-lang/backtrace-rs#556

##### New Contributors

-   [@&#8203;Kobzol](https://togithub.com/Kobzol) made their first contribution in [rust-lang/backtrace-rs#542
-   [@&#8203;detly](https://togithub.com/detly) made their first contribution in [rust-lang/backtrace-rs#550
-   [@&#8203;liudangyi](https://togithub.com/liudangyi) made their first contribution in [rust-lang/backtrace-rs#559
-   [@&#8203;MasonRemaley](https://togithub.com/MasonRemaley) made their first contribution in [rust-lang/backtrace-rs#553
-   [@&#8203;mulkieran](https://togithub.com/mulkieran) made their first contribution in [rust-lang/backtrace-rs#555
-   [@&#8203;pitaj](https://togithub.com/pitaj) made their first contribution in [rust-lang/backtrace-rs#556
-   [@&#8203;klensy](https://togithub.com/klensy) made their first contribution in [rust-lang/backtrace-rs#543

**Full Changelog**: rust-lang/backtrace-rs@0.3.68...0.3.69

### [`v0.3.68`](https://togithub.com/rust-lang/backtrace-rs/releases/tag/0.3.68)

[Compare Source](https://togithub.com/rust-lang/backtrace-rs/compare/0.3.67...0.3.68)

A bunch of behind-the-scenes work on upgrading CI has finally got things to a place where we can do confident releases again, so hopefully the next backtrace version will not take 6 months! Thanks to everyone who contributed to that! Most of the user-facing changes are about dependency updates and consequent improved platform compatibility, including with split DWARF. A few new functions on BacktraceFmt should also make it easier to inject additional text into backtrace's output.

-   Adapt to new Fuchsia target name by [@&#8203;flba-eb](https://togithub.com/flba-eb) in [rust-lang/backtrace-rs#509
-   armv7 PSVita OS support by [@&#8203;nikarh](https://togithub.com/nikarh) in [rust-lang/backtrace-rs#523
-   Upgrade addr2line and properly handle split DWARF on Linux by [@&#8203;khuey](https://togithub.com/khuey) in [rust-lang/backtrace-rs#513
-   deps: update miniz_oxide to 0.7 by [@&#8203;poliorcetics](https://togithub.com/poliorcetics) in [rust-lang/backtrace-rs#521
-   Add print in BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#527
-   Bump object to 0.31 by [@&#8203;lnicola](https://togithub.com/lnicola) in [rust-lang/backtrace-rs#522
-   Add an exception for QNX Neutrino 7.0 as a 'no-op' platform by [@&#8203;samkearney](https://togithub.com/samkearney) in [rust-lang/backtrace-rs#529
-   Use mmap64 on Linux. by [@&#8203;mikebenfield](https://togithub.com/mikebenfield) in [rust-lang/backtrace-rs#501
-   dbghlp: Make mutex name unique to the process by [@&#8203;ChrisDenton](https://togithub.com/ChrisDenton) in [rust-lang/backtrace-rs#518
-   gimli add netbsd to handle dl_iterate_phdr as well. by [@&#8203;devnexen](https://togithub.com/devnexen) in [rust-lang/backtrace-rs#512
-   Add other apple targets to libunwind workaround by [@&#8203;thomcc](https://togithub.com/thomcc) in [rust-lang/backtrace-rs#516
-   Add fmt method for BacktraceFmt by [@&#8203;chenyukang](https://togithub.com/chenyukang) in [rust-lang/backtrace-rs#532

##### New Contributors

-   [@&#8203;bwmf2](https://togithub.com/bwmf2) made their first contribution in [rust-lang/backtrace-rs#515
-   [@&#8203;flba-eb](https://togithub.com/flba-eb) made their first contribution in [rust-lang/backtrace-rs#509
-   [@&#8203;nikarh](https://togithub.com/nikarh) made their first contribution in [rust-lang/backtrace-rs#523
-   [@&#8203;poliorcetics](https://togithub.com/poliorcetics) made their first contribution in [rust-lang/backtrace-rs#521
-   [@&#8203;GuillaumeGomez](https://togithub.com/GuillaumeGomez) made their first contribution in [rust-lang/backtrace-rs#524
-   [@&#8203;chenyukang](https://togithub.com/chenyukang) made their first contribution in [rust-lang/backtrace-rs#527
-   [@&#8203;lnicola](https://togithub.com/lnicola) made their first contribution in [rust-lang/backtrace-rs#522
-   [@&#8203;samkearney](https://togithub.com/samkearney) made their first contribution in [rust-lang/backtrace-rs#529
-   [@&#8203;mikebenfield](https://togithub.com/mikebenfield) made their first contribution in [rust-lang/backtrace-rs#501
-   [@&#8203;devnexen](https://togithub.com/devnexen) made their first contribution in [rust-lang/backtrace-rs#512
-   [@&#8203;thomcc](https://togithub.com/thomcc) made their first contribution in [rust-lang/backtrace-rs#516
-   [@&#8203;workingjubilee](https://togithub.com/workingjubilee) made their first contribution in [rust-lang/backtrace-rs#533
-   [@&#8203;chriswailes](https://togithub.com/chriswailes) made their first contribution in [rust-lang/backtrace-rs#534

**Full Changelog**: rust-lang/backtrace-rs@0.3.67...0.3.68

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/X-oss-byte/Nextjs).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants