-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Investigate panic while dropping OsIpcReceiverSet #32912
Comments
Back traces of all threads:
|
if we delay dropping of ipc stuff the panic does not happen: diff --git a/components/net/tests/resource_thread.rs b/components/net/tests/resource_thread.rs
index 9a32143d71..c52884b243 100644
--- a/components/net/tests/resource_thread.rs
+++ b/components/net/tests/resource_thread.rs
@@ -35,6 +35,7 @@ fn test_exit() {
);
resource_thread.send(CoreResourceMsg::Exit(sender)).unwrap();
receiver.recv().unwrap();
+ std::thread::sleep(std::time::Duration::from_millis(1000));
}
#[test] but this doesn't help: #[test]
fn test_exit() {
+ {
let (tx, _rx) = ipc::channel().unwrap();
let (mtx, _mrx) = ipc::channel().unwrap();
let (sender, receiver) = ipc::channel().unwrap();
@@ -35,6 +36,8 @@ fn test_exit() {
);
resource_thread.send(CoreResourceMsg::Exit(sender)).unwrap();
receiver.recv().unwrap();
+ }
+ std::thread::sleep(std::time::Duration::from_millis(1000));
} |
What's the code that's panicking? |
github-merge-queue bot
pushed a commit
that referenced
this issue
Aug 7, 2024
* Update for nix Signed-off-by: Hayashi Mikihiro <[email protected]> * Update to Rust 1.80.0 Signed-off-by: Hayashi Mikihiro <[email protected]> * Rename to BindingMode from BindingAnnotation rust-lang/rust#124047 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove TypeVariableOriginKind rust-lang/rust#123016 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove TypeVariableOrigin rust-lang/rust#124955 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove LintDiagnostic::msg rust-lang/rust#125410 Signed-off-by: Hayashi Mikihiro <[email protected]> * common.rs fmt mistake indents Signed-off-by: Hayashi Mikihiro <[email protected]> * trace_in_no_trace.rs remove mistake space Signed-off-by: Hayashi Mikihiro <[email protected]> * trace_in_no_trace.rs remove mistake head space Signed-off-by: Hayashi Mikihiro <[email protected]> * Workaround for #32912 It's dirty but it worked on 2000 runs Signed-off-by: sagudev <[email protected]> --------- Signed-off-by: Hayashi Mikihiro <[email protected]> Signed-off-by: sagudev <[email protected]> Co-authored-by: Samson <[email protected]>
Gae24
pushed a commit
to Gae24/servo
that referenced
this issue
Aug 7, 2024
* Update for nix Signed-off-by: Hayashi Mikihiro <[email protected]> * Update to Rust 1.80.0 Signed-off-by: Hayashi Mikihiro <[email protected]> * Rename to BindingMode from BindingAnnotation rust-lang/rust#124047 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove TypeVariableOriginKind rust-lang/rust#123016 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove TypeVariableOrigin rust-lang/rust#124955 Signed-off-by: Hayashi Mikihiro <[email protected]> * Remove LintDiagnostic::msg rust-lang/rust#125410 Signed-off-by: Hayashi Mikihiro <[email protected]> * common.rs fmt mistake indents Signed-off-by: Hayashi Mikihiro <[email protected]> * trace_in_no_trace.rs remove mistake space Signed-off-by: Hayashi Mikihiro <[email protected]> * trace_in_no_trace.rs remove mistake head space Signed-off-by: Hayashi Mikihiro <[email protected]> * Workaround for servo#32912 It's dirty but it worked on 2000 runs Signed-off-by: sagudev <[email protected]> --------- Signed-off-by: Hayashi Mikihiro <[email protected]> Signed-off-by: sagudev <[email protected]> Co-authored-by: Samson <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I think this happens because we panic in drop of
OsIpcReceiverSet
, (it's actually panic while panic), but this is in separate thread. While before this was visible rarely (we have retry 3 on unit-tests), but now rust-lang/rust#119224 causes main test thread to wait for panic_hook to not be used (so it can be freed), so this panic is visible way more often (as it actually finishes in time).Originally posted by @sagudev in #32896 (comment)
The text was updated successfully, but these errors were encountered: