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

Called `Result::unwrap()` on an `Err` value: "SendError(..)" in Window::force_reflow on shutdown #15079

Closed
Ms2ger opened this issue Jan 17, 2017 · 7 comments

Comments

@Ms2ger
Copy link
Contributor

@Ms2ger Ms2ger commented Jan 17, 2017

stack backtrace:
   0:     0x7fcff704add1 - backtrace::backtrace::libunwind::trace
                        at backtrace-0.2.3/src/backtrace/mod.rs:82
                         - backtrace::backtrace::trace<closure>
                        at backtrace-0.2.3/src/backtrace/mod.rs:70
   1:     0x7fcff704ae98 - backtrace::capture::{{impl}}::new
                        at backtrace-0.2.3/src/lib.rs:96
   2:     0x7fcff1d341eb - servo::main::{{closure}}
                        at SERVO/ports/servo/main.rs:122
   3:     0x7fcff86e63f8 - std::panicking::rust_panic_with_hook
                        at RUST/src/libstd/panicking.rs:556
   4:     0x7fcff86e62c4 - std::panicking::begin_panic<collections::string::String>
                        at RUST/src/libstd/panicking.rs:517
   5:     0x7fcff86e61e9 - std::panicking::begin_panic_fmt
                        at RUST/src/libstd/panicking.rs:501
   6:     0x7fcff86e6177 - std::panicking::rust_begin_panic
                        at RUST/src/libstd/panicking.rs:477
   7:     0x7fcff87137bd - core::panicking::panic_fmt
                        at RUST/src/libcore/panicking.rs:69
   8:     0x7fcff30aab75 - core::result::unwrap_failed<std::sync::mpsc::SendError<script_layout_interface::message::Msg>>
                        at RUST/src/libcore/macros.rs:29
   9:     0x7fcff2fec103 - core::result::{{impl}}::unwrap<(),std::sync::mpsc::SendError<script_layout_interface::message::Msg>>
                        at RUST/src/libcore/result.rs:745
  10:     0x7fcff33c146a - script::dom::window::{{impl}}::force_reflow
                        at SERVO/components/script/dom/window.rs:1119
  11:     0x7fcff33c1f03 - script::dom::window::{{impl}}::reflow
                        at SERVO/components/script/dom/window.rs:1170
  12:     0x7fcff33c383f - script::dom::window::{{impl}}::resolved_style_query
                        at SERVO/components/script/dom/window.rs:1330
  13:     0x7fcff4f442fb - script::dom::cssstyledeclaration::{{impl}}::get_computed_style
                        at SERVO/components/script/dom/cssstyledeclaration.rs:139
  14:     0x7fcff4f44416 - script::dom::cssstyledeclaration::{{impl}}::get_property_value
                        at SERVO/components/script/dom/cssstyledeclaration.rs:147
  15:     0x7fcff522f8fc - script::dom::cssstyledeclaration::{{impl}}::Display
                        at SERVO/components/script/dom/cssstyledeclaration.rs:430
  16:     0x7fcff5036db0 - script::script_thread::{{impl}}::handle_transition_event
                        at SERVO/components/script/script_thread.rs:1646
  17:     0x7fcff5026a98 - script::script_thread::{{impl}}::handle_msg_from_constellation
                        at SERVO/components/script/script_thread.rs:1004
  18:     0x7fcff50245aa - script::script_thread::{{impl}}::handle_msgs::{{closure}}
                        at SERVO/components/script/script_thread.rs:868
  19:     0x7fcff50253a1 - script::script_thread::{{impl}}::profile_event<closure,core::option::Option<bool>>
                        at SERVO/components/script/script_thread.rs:963
  20:     0x7fcff5022d6a - script::script_thread::{{impl}}::handle_msgs
                        at SERVO/components/script/script_thread.rs:862
  21:     0x7fcff5021355 - script::script_thread::{{impl}}::start
                        at SERVO/components/script/script_thread.rs:720
  22:     0x7fcff501daa4 - script::script_thread::{{impl}}::create::{{closure}}::{{closure}}
                        at SERVO/components/script/script_thread.rs:556
  23:     0x7fcff4615cb7 - profile_traits::mem::{{impl}}::run_with_memory_reporting<closure,fn(profile_traits::mem::ReportsChan) -> script::script_runtime::CommonScriptMsg,script::script_runtime::CommonScriptMsg,std::sync::mpsc::Sender<script::script_thread::MainThreadScriptMsg>>
                        at SERVO/components/profile_traits/mem.rs:63
  24:     0x7fcff501e158 - script::script_thread::{{impl}}::create::{{closure}}
                        at SERVO/components/script/script_thread.rs:555
  25:     0x7fcff4e6a37a - std::panic::{{impl}}::call_once<(),closure>
                        at RUST/src/libstd/panic.rs:296
  26:     0x7fcff4a05149 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at RUST/src/libstd/panicking.rs:460
  27:     0x7fcff86ed37a - panic_unwind::__rust_maybe_catch_panic
                        at RUST/src/libpanic_unwind/lib.rs:98
  28:     0x7fcff4997623 - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at RUST/src/libstd/panicking.rs:436
  29:     0x7fcff490f5c4 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at RUST/src/libstd/panic.rs:361
  30:     0x7fcff4921b9b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at RUST/src/libstd/thread/mod.rs:357
  31:     0x7fcff4ca1832 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at RUST/src/liballoc/boxed.rs:605
  32:     0x7fcff86e5084 - alloc::boxed::{{impl}}::call_once<(),()>
                        at RUST/src/liballoc/boxed.rs:615
                         - std::sys_common::thread::start_thread
                        at RUST/src/libstd/sys_common/thread.rs:21
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at RUST/src/libstd/sys/unix/thread.rs:84
  33:     0x7fcfef85d183 - start_thread
  34:     0x7fcfef37437c - clone
  35:                0x0 - <unknown>

That's

        self.layout_chan.send(Msg::Reflow(reflow)).unwrap();
@jdm
Copy link
Member

@jdm jdm commented Jan 17, 2017

Usually this would occur when the layout thread panics first.

@jdm
Copy link
Member

@jdm jdm commented Jan 17, 2017

Oh wait, this might happen when a pipeline is closed but a transition event is received afterwards.

@jdm
Copy link
Member

@jdm jdm commented Jan 17, 2017

The transition event should really include a PipelineId so we can detect if it's targeting a closed pipeline.

@nox
Copy link
Member

@nox nox commented Oct 7, 2017

Detecting closed pipeline sounds like we should ping @asajeffrey.

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Oct 9, 2017

Could just have script thread ignore transition events for pipelines that aren't fully active? Or we could check in script thread that the pipeline's not been closed.

@jdm
Copy link
Member

@jdm jdm commented Oct 9, 2017

Right, the point being that there is no pipeline present in the message from which to draw such a conclusion yet.

@asajeffrey
Copy link
Member

@asajeffrey asajeffrey commented Oct 9, 2017

@jdm the window is still alive though, so we can query it to see if it has been discarded, since it knows its own pipeline id and we could look that up in the documents collection.

mrobinson added a commit to mrobinson/servo that referenced this issue Apr 21, 2020
This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes servo#15079.
@mrobinson mrobinson mentioned this issue Apr 21, 2020
4 of 5 tasks complete
bors-servo added a commit that referenced this issue Apr 21, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
mrobinson added a commit to mrobinson/servo that referenced this issue Apr 22, 2020
This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes servo#15079.
mrobinson added a commit to mrobinson/servo that referenced this issue Apr 22, 2020
This change adds support for canceling CSS transitions when a property
is no longer transitionable or when an element becomes styled with
display:none. Support for canceling and replacing CSS transitions when
the end value changes is still pending. This change also takes advantage
of updating the constellation message to fix a bug where transition
events could be sent for closed pipelines.

Fixes servo#15079.
bors-servo added a commit that referenced this issue Apr 22, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
mrobinson added a commit to mrobinson/servo that referenced this issue Apr 22, 2020
This change adds support for canceling CSS transitions when a property
is no longer transitionable or when an element becomes styled with
display:none. Support for canceling and replacing CSS transitions when
the end value changes is still pending. This change also takes advantage
of updating the constellation message to fix a bug where transition
events could be sent for closed pipelines.

Fixes servo#15079.
bors-servo added a commit that referenced this issue Apr 22, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
bors-servo added a commit that referenced this issue Apr 22, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
bors-servo added a commit that referenced this issue Apr 22, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
bors-servo added a commit that referenced this issue Apr 22, 2020
Add support for canceling CSS transitions

This change adds support for canceling CSS transitions when a property is
no longer transitionable. Support for canceling and replacing CSS
transitions when the end value changes is still pending. This change
also takes advantage of updating the constellation message to fix a bug
where transition events could be sent for closed pipelines.

Fixes #15079.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #15079.

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
nosark added a commit to nosark/servo that referenced this issue Jul 19, 2020
This change adds support for canceling CSS transitions when a property
is no longer transitionable or when an element becomes styled with
display:none. Support for canceling and replacing CSS transitions when
the end value changes is still pending. This change also takes advantage
of updating the constellation message to fix a bug where transition
events could be sent for closed pipelines.

Fixes servo#15079.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

4 participants
You can’t perform that action at this time.