-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Truncate thread names on Linux and Apple targets #103379
Conversation
These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time.
This comment was marked as resolved.
This comment was marked as resolved.
Looks good to me, thanks! (Kinda wild that 16 bytes is the norm on Linux, but so it goes) @bors r+ |
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? `@thomcc`
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ``@thomcc``
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ```@thomcc```
Failed in rollup #103419 (comment) @bors r- |
Ah, musl added |
Added that simple test gating... @bors r=thomcc |
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? `@thomcc`
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ``@thomcc``
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ```@thomcc```
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ````@thomcc````
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? `````@thomcc`````
Rollup of 6 pull requests Successful merges: - rust-lang#98204 (Stabilize `Option::unzip()`) - rust-lang#102587 (rustc: Use `unix_sigpipe` instead of `rustc_driver::set_sigpipe_handler`) - rust-lang#103122 (Remove misc_cast and validate types when casting) - rust-lang#103379 (Truncate thread names on Linux and Apple targets) - rust-lang#103482 (Clairify Vec::capacity docs) - rust-lang#103511 (Codegen tweaks) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
unsafe { | ||
// Available since glibc 2.12, musl 1.1.16, and uClibc 1.0.20. | ||
let name = truncate_cstr(name, TASK_COMM_LEN); | ||
libc::pthread_setname_np(libc::pthread_self(), name.as_ptr()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to at least debug_assert that no error is being returned here? Or even to assert that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would be fine with adding a debug_assert
. I don't think it's worth a full assert
though -- it could be blocked by seccomp or something, for whatever reason, but this isn't really a critical panic-worthy failure.
…mulacrum [beta] backport rollup * poll_fn and Unpin: fix pinning rust-lang#102737 * Support raw-dylib functions being used inside inlined functions rust-lang#102988 * Fix line numbers for MIR inlined code rust-lang#103071 * Add architectures to fn create_object_file rust-lang#103240 * Add eval hack in super_relate_consts back rust-lang#103279 * Mark std::os::wasi::io::AsFd etc. as stable. rust-lang#103308 * Truncate thread names on Linux and Apple targets rust-lang#103379 * Do not consider repeated lifetime params for elision. rust-lang#103450 * rustdoc: add missing URL redirect rust-lang#103588 * Remove commit_if_ok probe from NLL type relation rust-lang#103601 Also includes a copy of the release notes. r? `@ghost`
…omcc Truncate thread names on Linux and Apple targets These targets have system limits on the thread names, 16 and 64 bytes respectively, and `pthread_setname_np` returns an error if the name is longer. However, we're not in a context that can propagate errors when we call this, and we used to implicitly truncate on Linux with `prctl`, so now we manually truncate these names ahead of time. r? ``````@thomcc``````
Rollup of 6 pull requests Successful merges: - rust-lang#98204 (Stabilize `Option::unzip()`) - rust-lang#102587 (rustc: Use `unix_sigpipe` instead of `rustc_driver::set_sigpipe_handler`) - rust-lang#103122 (Remove misc_cast and validate types when casting) - rust-lang#103379 (Truncate thread names on Linux and Apple targets) - rust-lang#103482 (Clairify Vec::capacity docs) - rust-lang#103511 (Codegen tweaks) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
These targets have system limits on the thread names, 16 and 64 bytes
respectively, and
pthread_setname_np
returns an error if the name islonger. However, we're not in a context that can propagate errors when
we call this, and we used to implicitly truncate on Linux with
prctl
,so now we manually truncate these names ahead of time.
r? @thomcc