channel: Do not call current_thread_id inside iteration#802
Conversation
FWIW, since my comment about that, I actually confirmed that LTO is not involved. It might be dependent on the rust version, though (not fully confirmed yet). Edit: it looks like it's not version-dependent. |
|
FWIW, something else that works is changing the Edit: another thing that works is annotating |
|
@glandium Thanks for investigating this! bors r+ |
|
(Possibly related: rust-lang/rust#48967) |
|
Build succeeded: |
|
Published in crossbeam-channel 0.5.4. UPDATE: I've yanked affected releases. |
firefox issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1757571 fix from: crossbeam-rs/crossbeam#802
crossbeam-channel v0.5.4 has a workaround for a bug in upstream (rustc or LLVM?) related to TLS access on AArch64 Linux: crossbeam-rs/crossbeam#802
|
For the record, taking 0.5.4 works, and changing |
…rg/advisories/RUSTSEC-2022-0014 crossbeam-channel 0.5.2 -> 0.5.4 yanked: crossbeam-rs/crossbeam#802 (https://github.com/crossbeam-rs/crossbeam/blob/crossbeam-channel-0.5.4/crossbeam-channel/CHANGELOG.md) crossbeam-utils 0.8.6 -> 0.8.8 yanked: GHSA-qc84-gqf4-9926 (https://github.com/crossbeam-rs/crossbeam/blob/crossbeam-utils-0.8.8/crossbeam-utils/CHANGELOG.md)
…crum Bump deps Update few deps: First commit: vulnerable or yanked ones: * openssl-src 111.17.0+1.1.1m -> 111.18.0+1.1.1n vuln https://rustsec.org/advisories/RUSTSEC-2022-0014 * crossbeam-channel 0.5.2 -> 0.5.4 yanked: crossbeam-rs/crossbeam#802 (https://github.com/crossbeam-rs/crossbeam/blob/crossbeam-channel-0.5.4/crossbeam-channel/CHANGELOG.md) * crossbeam-utils 0.8.6 -> 0.8.8 yanked: GHSA-qc84-gqf4-9926 (https://github.com/crossbeam-rs/crossbeam/blob/crossbeam-utils-0.8.8/crossbeam-utils/CHANGELOG.md) Second commit: no notable changes, most of them touched only to remove other ones: * Updating ammonia v3.1.3 -> v3.2.0 * Updating html5ever v0.25.1 -> v0.26.0 * Updating markup5ever v0.10.1 -> v0.11.0 * Removing markup5ever_rcdom v0.1.0 * Updating phf v0.8.0 -> v0.10.1 * Updating phf_codegen v0.8.0 -> v0.10.0 * Updating phf_generator v0.8.0 -> v0.10.0 * Updating phf_shared v0.8.0 -> v0.10.0 * Updating rand v0.8.4 -> v0.8.5 * Removing rand_hc v0.3.0 * Removing rand_pcg v0.2.1 * Updating string_cache v0.8.0 -> v0.8.3 * Updating string_cache_codegen v0.5.1 -> v0.5.2 * Removing xml5ever v0.16.1 drops markup5ever_rcdom, rand_hc, rand_pcg, xml5ever versions * rand 0.8.4 -> 0.8.5 (https://github.com/rust-random/rand/blob/0.8.5/CHANGELOG.md#085---2021-08-20) Third one is perf oriented: * proc-macro2 v1.0.30 -> v1.0.37 dtolnay/proc-macro2@1.0.30...1.0.37 (https://github.com/dtolnay/proc-macro2/releases, for example https://github.com/dtolnay/proc-macro2/releases/tag/1.0.36) * quote v1.0.7 -> v1.0.18 dtolnay/quote@1.0.7...1.0.18 (https://github.com/dtolnay/quote/releases) multiple perf improvements: https://github.com/dtolnay/quote/releases/tag/1.0.16, https://github.com/dtolnay/quote/releases/tag/1.0.14, https://github.com/dtolnay/quote/releases/tag/1.0.11 * syn v1.0.80 -> v1.0.91 dtolnay/syn@1.0.80...1.0.91 (https://github.com/dtolnay/syn/releases): didn't find good examples, but given, that there exist private api across `proc-macro2`, `quote` by the same author, *i think* it may take advantage of it.
…ulacrum Avoid tls access while iterating through mpsc thread entries Upstream fix: crossbeam-rs/crossbeam#802. Possibly fixes rust-lang#113726.
Avoid tls access while iterating through mpsc thread entries Upstream fix: crossbeam-rs/crossbeam#802. Possibly fixes rust-lang/rust#113726.
Avoid tls access while iterating through mpsc thread entries Upstream fix: crossbeam-rs/crossbeam#802. Possibly fixes rust-lang/rust#113726.
This should result in the same behavior as before 10009bd.
This works around an upstream bug related to TLS access on aarch64 linux, which was reported in firefox.