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

Servo crash in script::dom::htmlanchorelement::HTMLAnchorElement::update_href #11261

Closed
paulrouget opened this issue May 19, 2016 · 6 comments
Closed
Assignees

Comments

@paulrouget
Copy link
Contributor

@paulrouget paulrouget commented May 19, 2016

It's a very recent regression. Bisecting…

(lldb) target create "./servo"
Current executable set to './servo' (x86_64).
(lldb) run -w http://reddit.com
Process 5820 launched: './servo' (x86_64)
fatal runtime error: Could not unwind stack, error = 5
Process 5820 stopped
* thread #34: tid = 0x4c31a, 0x00000001018e37fd servo`rust_panic + 333, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
    frame #0:  servo`rust_panic
servo`rust_panic:
->  0x1018e37fd <+333>: ud2
    0x1018e37ff <+335>: movq   %rax, %r15
    0x1018e3802 <+338>: cmpq   %rbx, %r12
    0x1018e3805 <+341>: je     0x1018e3822               ; <+370>
(lldb) bt
* thread #34: tid = 0x4c31a, 0x00000001018e37fd servo`rust_panic + 333, stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
  * frame #0:  servo`rust_panic
    frame #1:  servo`std::sys_common::unwind::begin_unwind_inner::h30e12d15ce2b2e25
    frame #2:  servo`std::sys_common::unwind::begin_unwind_fmt::hb2de8a9968d38523
    frame #3:  servo`rust_begin_unwind
    frame #4:  servo`core::panicking::panic_fmt::h257ceb0aa351d801
    frame #5:  servo`core::option::expect_failed::h2d57a5644f345e0b
    frame #6:  servo`_$LT$dom..bindings..cell..DOMRefCell$LT$T$GT$$GT$::borrow::ha59c80147194c0c4
    frame #7:  servo`script::dom::htmlanchorelement::HTMLAnchorElement::update_href::h6ec818b1e73649e5
    frame #8:  servo`_$LT$dom..htmlanchorelement..HTMLAnchorElement$u20$as$u20$dom..bindings..codegen..Bindings..HTMLAnchorElementBinding..HTMLAnchorElementMethods$GT$::SetHash::h4baab285676fffc4
    frame #9:  servo`script::dom::bindings::codegen::Bindings::HTMLAnchorElementBinding::set_hash::h2dab0550dcd309d9
    frame #10:  servo`CallJitSetterOp
    frame #11:  servo`script::dom::bindings::utils::call_setter::ha151a4b89edb07d2
    frame #12:  servo`script::dom::bindings::utils::generic_call::h04712f3953e74aad
    frame #13:  servo`js::jit::Bailout(js::jit::BailoutStack*, js::jit::BaselineBailoutInfo**)
    frame #14:  servo`js::jit::BailoutIonToBaseline(JSContext*, js::jit::JitActivation*, js::jit::JitFrameIterator&, bool, js::jit::BaselineBailoutInfo**, js::jit::ExceptionBailoutInfo const*) [inlined] BaselineStackBuilder::BaselineStackBuilder(js::jit::JitFrameIterator&, unsigned long)
@jdm
Copy link
Member

@jdm jdm commented May 19, 2016

I suspect #11182.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented May 19, 2016

@jdm yes.

Reverting #11182 solves the crash.

@KiChjang
Copy link
Member

@KiChjang KiChjang commented May 19, 2016

How did our tests not catch this?

@KiChjang
Copy link
Member

@KiChjang KiChjang commented May 19, 2016

In any case, I'm currently working on this.

@KiChjang KiChjang self-assigned this May 19, 2016
bors-servo added a commit that referenced this issue May 19, 2016
Fix panic from update_href in HTMLAnchorElement

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [x] These changes fix #11261 (github issue number if applicable).
- [x] These changes do not require tests because unsure how this would be tested.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11264)
<!-- Reviewable:end -->
@KiChjang
Copy link
Member

@KiChjang KiChjang commented May 19, 2016

#10903 should have a test that tests this, but it was passing in #11182.

@KiChjang
Copy link
Member

@KiChjang KiChjang commented May 19, 2016

Also, I can't seem to find any borrowing happening in update_href at the current tip of master; where does the the .borrow() call for DOMRefCell come from?

bors-servo added a commit that referenced this issue May 19, 2016
Fix panic from update_href in HTMLAnchorElement

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [x] These changes fix #11261 (github issue number if applicable).
- [x] These changes do not require tests because unsure how this would be tested.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11264)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue May 19, 2016
Fix panic from update_href in HTMLAnchorElement

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [x] These changes fix #11261 (github issue number if applicable).
- [x] These changes do not require tests because unsure how this would be tested.

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