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

Flexbox assertion failure on "Do you want to use HTML Gmail?" page #14813

Closed
jdm opened this issue Jan 1, 2017 · 4 comments
Closed

Flexbox assertion failure on "Do you want to use HTML Gmail?" page #14813

jdm opened this issue Jan 1, 2017 · 4 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Jan 1, 2017

Follow the steps in #14782 with the patch from #14480 applied to reproduce this.

assertion failed: !self.is_inline_flex_item() (thread <unnamed>, at /Users/jdm/src/servo/components/layout/block.rs:1490)
stack backtrace:
   0:        0x1092855b1 - backtrace::backtrace::trace::hf69d5756c40bafc7
   1:        0x109285c58 - backtrace::capture::Backtrace::new::h92e5f83ad3bb233c
   2:        0x108f1c4fc - servo::main::{{closure}}::hf6443ebf81e66199
   3:        0x10e521273 - std::panicking::rust_panic_with_hook::h3e771863e3ed8403
   4:        0x10a082573 - std::panicking::begin_panic::h94258923a88c8674
   5:        0x10a1a5e94 - layout::block::BlockFlow::assign_inline_position_for_formatting_context::hdfa4488a6f343e76
   6:        0x10a1a9809 - <layout::block::BlockFlow as layout::flow::Flow>::assign_block_size_for_inorder_child_if_necessary::h21112feff39fe6dc
   7:        0x10a1e45e7 - <layout::flex::FlexFlow as layout::flow::Flow>::assign_block_size::h53a93f40ecba6b0e
   8:        0x10a24ff8b - <layout::traversal::AssignBSizes<'a> as layout::flow::PostorderFlowTraversal>::process::h3477b9c360ab6b67
   9:        0x10a226a18 - layout::parallel::ParallelPostorderFlowTraversal::run_parallel::h02750156af966f8b
  10:        0x10a227437 - layout::parallel::assign_block_sizes_and_store_overflow::h16cf9d6b5c647ed0
  11:        0x10a2270a3 - <layout::traversal::AssignISizes<'a> as layout::parallel::ParallelPreorderFlowTraversal>::run_parallel::ha7bd8211f93032e9
  12:        0x10a227394 - layout::parallel::assign_inline_sizes::h9330b2f2712555d8
  13:        0x10a226c63 - layout::parallel::ParallelPreorderFlowTraversal::run_parallel_helper::{{closure}}::h0a273d197733753e
  14:        0x10a101448 - rayon::scope::Scope::execute_job_closure::{{closure}}::h031fa7c9043cd650
  15:        0x10a18d19a - <std::panic::AssertUnwindSafe<F> as core::ops::FnOnce<()>>::call_once::h716a976925ce282d
  16:        0x10a0837b3 - std::panicking::try::do_call::h125fe1a12eaa9148
  17:        0x10e52214a - __rust_maybe_catch_panic
  18:        0x10a082a22 - std::panicking::try::h41fe2cb324b77397
  19:        0x10a08227e - std::panic::catch_unwind::h5d8e17f3aa9e3536
  20:        0x10a101fee - rayon::unwind::halt_unwinding::h7031a2c78032c25c
  21:        0x10a101282 - rayon::scope::Scope::execute_job_closure::hfbdc8bb7889dd988
  22:        0x10a100e56 - rayon::scope::Scope::execute_job::h1a57802368286286
  23:        0x10a101963 - rayon::scope::Scope::spawn::{{closure}}::h119c5db8ff12409d
  24:        0x10a134550 - <rayon::job::HeapJob<BODY> as rayon::job::Job>::execute::hcd89fb7223a32830
  25:        0x10df10daa - rayon::job::JobRef::execute::h1b189c9197a8f3d2
  26:        0x10df128a0 - rayon::thread_pool::WorkerThread::pop_spawned_jobs::heff48614893112f8
  27:        0x10df12a8c - rayon::thread_pool::WorkerThread::steal_until::he91d67c8f01a52bf
  28:        0x10df1108a - rayon::scope::Scope::steal_till_jobs_complete::h68c6cfc741caf4f6
  29:        0x10a101c53 - rayon::scope::scope::h1e28c08a4ee87f0a
  30:        0x10a227a74 - layout::parallel::traverse_flow_tree_preorder::{{closure}}::h514ebf367cc99d85
  31:        0x10a17bd7f - <rayon::job::StackJob<L, F, R> as rayon::job::Job>::execute::{{closure}}::hb6de5ad01024b682
  32:        0x10a18d0d5 - <std::panic::AssertUnwindSafe<F> as core::ops::FnOnce<()>>::call_once::h2ebeb3b712fb7246
  33:        0x10a083b91 - std::panicking::try::do_call::hc5159f07e6d1e21d
  34:        0x10e52214a - __rust_maybe_catch_panic
  35:        0x10a082e4d - std::panicking::try::h70bb178a65a01cc5
  36:        0x10a082469 - std::panic::catch_unwind::hf5881981ba25f10a
  37:        0x10a101ed9 - rayon::unwind::halt_unwinding::h554713cdd6382638
  38:        0x10a17b62f - <rayon::job::StackJob<L, F, R> as rayon::job::Job>::execute::h8cd0ddee93b96cf8
  39:        0x10df10daa - rayon::job::JobRef::execute::h1b189c9197a8f3d2
  40:        0x10df131cc - rayon::thread_pool::main_loop::hf84e0044726bb803
  41:        0x10df11a0d - rayon::thread_pool::Registry::new::{{closure}}::h5e2e1b92eee5b257
  42:        0x10df0ebaa - <std::panic::AssertUnwindSafe<F> as core::ops::FnOnce<()>>::call_once::hb25ca362fdf20e26
  43:        0x10defeaf5 - std::panicking::try::do_call::h978cb777aa487beb
  44:        0x10e52214a - __rust_maybe_catch_panic
  45:        0x10defe7e2 - std::panicking::try::hac2c6307154f3dd2
  46:        0x10defd6f6 - std::panic::catch_unwind::h05d886dbc7a696ba
  47:        0x10defe3ed - std::thread::Builder::spawn::{{closure}}::hf0f15a624fbfcb57
  48:        0x10df079f3 - <F as alloc::boxed::FnBox<A>>::call_box::h3c4f2e6bf53138c7
  49:        0x10e5201f4 - std::sys::imp::thread::Thread::new::thread_start::h5f22426d80277e16
  50:     0x7fff8e409898 - _pthread_body
  51:     0x7fff8e409729 - _pthread_start
@stshine
Copy link
Contributor

@stshine stshine commented Jan 1, 2017

Wow this is interesting!
cc @notriddle

@stshine
Copy link
Contributor

@stshine stshine commented Jan 1, 2017

@notriddle IMO maybe you should simply return when it is a flex item?

@notriddle
Copy link
Contributor

@notriddle notriddle commented Jan 1, 2017

That would stop the assertion from firing, but if it's getting here, it means that somehow it's both a flex item and speculated to be impacted by a float. That's wrong; a flex item should never be in the same formatting context as a float.

@jdm
Copy link
Member Author

@jdm jdm commented Aug 21, 2017

Also reproducible by searching for something from google.com.

bors-servo added a commit that referenced this issue Aug 21, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

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

<!-- 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 Aug 21, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

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

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18175)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Aug 21, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

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

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18175)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Aug 26, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

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

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18175)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Aug 28, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

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

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18175)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Aug 30, 2017
layout: Stop call normal block size assignment for flex container

No need to call the `assign_block_size_block_base()` method of normal block in flex.rs since it is implemented for CSS2.

<!-- 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 #14813 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18175)
<!-- Reviewable:end -->
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.

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