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

Do not attempt to unlock envlock in child process after a fork. #82949

Merged
merged 1 commit into from
Mar 10, 2021

Conversation

the8472
Copy link
Member

@the8472 the8472 commented Mar 9, 2021

This implements the first two points from #64718 (comment)

This is a breaking change for cases where the environment is accessed in a Command::pre_exec closure. Except for single-threaded programs these uses were not correct anyway since they aren't async-signal safe.

Note that we had a ui test that explicitly tried env::set_var in pre_exec. As expected it failed with these changes when I tested locally.

@rust-highfive
Copy link
Collaborator

r? @m-ou-se

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Mar 9, 2021
@m-ou-se
Copy link
Member

m-ou-se commented Mar 9, 2021

r? @joshtriplett

@rust-highfive rust-highfive assigned joshtriplett and unassigned m-ou-se Mar 9, 2021
@the8472

This comment has been minimized.

@rustbot rustbot added the T-libs-api Relevant to the library API team, which will review and decide on the PR/issue. label Mar 9, 2021
@rust-log-analyzer

This comment has been minimized.

@the8472 the8472 force-pushed the forget-envlock-on-fork branch 3 times, most recently from 1610e35 to 1cce755 Compare March 9, 2021 21:11
@joshtriplett
Copy link
Member

One minor nit; looks good otherwise.

Once this goes in, I'd be happy to review and land a switch back to an rwlock here.

This is a breaking change for cases where the environment is
accessed in a Command::pre_exec closure. Except for
single-threaded programs these uses were not correct
anyway since they aren't async-signal safe.
@joshtriplett
Copy link
Member

LGTM, r=me once CI passes.

@the8472
Copy link
Member Author

the8472 commented Mar 9, 2021

It passed, you'll have to poke bors.

@joshtriplett
Copy link
Member

@bors r+

@bors
Copy link
Contributor

bors commented Mar 9, 2021

📌 Commit d854789 has been approved by joshtriplett

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 9, 2021
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 10, 2021
Rollup of 9 pull requests

Successful merges:

 - rust-lang#81309 (always eagerly eval consts in Relate)
 - rust-lang#82217 (Edition-specific preludes)
 - rust-lang#82807 (rustdoc: Remove redundant enableSearchInput function)
 - rust-lang#82924 (WASI: Switch to crt1-command.o to enable support for new-style commands)
 - rust-lang#82949 (Do not attempt to unlock envlock in child process after a fork.)
 - rust-lang#82955 (fix: wrong word)
 - rust-lang#82962 (Treat header as first paragraph for shortened markdown descriptions)
 - rust-lang#82976 (fix error message for copy(_nonoverlapping) overflow)
 - rust-lang#82977 (Rename `Option::get_or_default` to `get_or_insert_default`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit d01648b into rust-lang:master Mar 10, 2021
@rustbot rustbot added this to the 1.52.0 milestone Mar 10, 2021
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 15, 2021
use RWlock when accessing os::env (take 2)

This reverts commit acdca31 (rust-lang#82877) i.e. redoes rust-lang#81850 since the invalid unlock attempts in the child process have been fixed in rust-lang#82949

r? `@joshtriplett`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs-api Relevant to the library API team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants