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

assertion failed (!global.is_null()) during Promise destructor after navigation #18651

Closed
mateon1 opened this issue Sep 27, 2017 · 3 comments
Closed

Comments

@mateon1
Copy link
Contributor

@mateon1 mateon1 commented Sep 27, 2017

Found with domato.

<style>
audio{border:dashed; border-image-source: url(data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7)}
</style>
<script>
function jsfuzzer(){
form = document.querySelector("form");
media = document.querySelector("audio");
form.submit();
media.play();
}
</script>
<body onload="jsfuzzer()"><form><audio>x

Note: It is nondeterministic how many times the crash is hit, 5 crashes is the lowest I found, while sometimes the crash was hit 15+ times before Servo died.

assertion failed: !global.is_null() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(1)) }, at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611)
assertion failed: !global.is_null() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(3)) }, at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611)
assertion failed: !global.is_null() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(4)) }, at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611)
assertion failed: !global.is_null() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(5)) }, at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611)
assertion failed: !global.is_null() (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(0), index: PipelineIndex(NonZero(6)) }, at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611)
stack backtrace:
   0:     0x55cc52866374 - backtrace::backtrace::libunwind::trace
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55cc528594df - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55cc4ca9b52e - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55cc53827d96 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:578
   4:     0x55cc4e3eba65 - std::panicking::begin_panic<&str>
                        at /checkout/src/libstd/panicking.rs:538
   5:     0x55cc4e06d394 - script::dom::globalscope::global_scope_from_global
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611
   6:     0x55cc4e06ae8e - script::dom::globalscope::{{impl}}::from_object
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:160
   7:     0x55cc4e069d70 - script::dom::globalscope::{{impl}}::from_reflector<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:152
   8:     0x55cc4dff06b3 - script::dom::bindings::reflector::DomObject::global<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/bindings/reflector.rs:81
   9:     0x55cc4e0bb0f3 - script::dom::promise::{{impl}}::drop
                        at /shared/dev/rust/servo/components/script/dom/promise.rs:64
  10:     0x55cc4fa309b4 - core::ptr::drop_in_place<script::dom::promise::Promise>
                        at /checkout/src/libcore/ptr.rs:61
  11:     0x55cc4fa35f28 - core::ptr::drop_in_place<alloc::rc::RcBox<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  12:     0x55cc4fac9688 - alloc::rc::{{impl}}::drop<script::dom::promise::Promise>
                        at /checkout/src/liballoc/rc.rs:791
  13:     0x55cc4dacbac4 - core::ptr::drop_in_place<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  14:     0x55cc4dac6b05 - core::ptr::drop_in_place<[alloc::rc::Rc<script::dom::promise::Promise>]>
                        at /checkout/src/libcore/ptr.rs:61
  15:     0x55cc4dc73ab1 - alloc::vec::{{impl}}::drop<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/liballoc/vec.rs:2110
  16:     0x55cc4e68cdb4 - core::ptr::drop_in_place<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>
                        at /checkout/src/libcore/ptr.rs:61
  17:     0x55cc4e687264 - core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  18:     0x55cc4e697698 - core::ptr::drop_in_place<core::cell::RefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  19:     0x55cc4e683124 - core::ptr::drop_in_place<script::dom::bindings::cell::DOMRefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  20:     0x55cc4e691f4f - core::ptr::drop_in_place<script::dom::htmlmediaelement::HTMLMediaElement>
                        at /checkout/src/libcore/ptr.rs:61
  21:     0x55cc4e6814d4 - core::ptr::drop_in_place<script::dom::htmlaudioelement::HTMLAudioElement>
                        at /checkout/src/libcore/ptr.rs:61
  22:     0x55cc4e6793d7 - core::ptr::drop_in_place<alloc::boxed::Box<script::dom::htmlaudioelement::HTMLAudioElement>>
                        at /checkout/src/libcore/ptr.rs:61
  23:     0x55cc4e8ce473 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:486
  24:     0x55cc4e66dd4c - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  25:     0x55cc4e2ff24c - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  26:     0x55cc4e5aa139 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  27:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  28:     0x55cc4e47f84a - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  29:     0x55cc4e3c7523 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  30:     0x55cc4f741d79 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,()>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  31:     0x55cc4e1f3178 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:481
  32:     0x55cc52f78b65 - _ZNK2js5Class10doFinalizeEPNS_6FreeOpEP8JSObject
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Class.h:815
  33:     0x55cc52f81342 - _ZN8JSObject8finalizeEPN2js6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobjinlines.h:85
  34:     0x55cc52f9b5dd - _ZN2js2gc5Arena8finalizeI8JSObjectEEmPNS_6FreeOpENS0_9AllocKindEm
  35:     0x55cc52f6f861 - FinalizeTypedArenas<JSObject>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:505
  36:     0x55cc52f3d12c - FinalizeArenas
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:539
  37:     0x55cc52f83b88 - _ZN2js2gc10ArenaLists16forceFinalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  38:     0x55cc52f83a31 - _ZN2js2gc10ArenaLists11finalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  39:     0x55cc52f44ac0 - _ZN2js2gc10ArenaLists30queueForegroundObjectsForSweepEPNS_6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:2839
  40:     0x55cc52f4cae5 - _ZN2js2gc9GCRuntime22beginSweepingZoneGroupERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5127
  41:     0x55cc52f4d23f - _ZN2js2gc9GCRuntime15beginSweepPhaseEbRNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5215
  42:     0x55cc52f4faaa - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5937
  43:     0x55cc52f5060a - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6174
  44:     0x55cc52f50b4b - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6287
  45:     0x55cc52f50eda - _ZN2js2gc9GCRuntime2gcE18JSGCInvocationKindN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6354
  46:     0x55cc531a64dd - _ZN9JSRuntime14destroyRuntimeEv
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Runtime.cpp:430
  47:     0x55cc52ef0693 - _ZN9JSContextD2Ev
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:892
  48:     0x55cc52f047c0 - js_delete_poison<JSContext>
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Utility.h:392
  49:     0x55cc52eedfd3 - _ZN2js14DestroyContextEP9JSContext
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:133
  50:     0x55cc52e885e3 - _Z17JS_DestroyRuntimeP9JSRuntime
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:464
  51:     0x55cc4fdc2d5c - js::rust::{{impl}}::drop
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/rust.rs:240
  52:     0x55cc4fa29614 - core::ptr::drop_in_place<js::rust::Runtime>
                        at /checkout/src/libcore/ptr.rs:61
  53:     0x55cc4fa17b28 - core::ptr::drop_in_place<alloc::rc::RcBox<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  54:     0x55cc4fac95a8 - alloc::rc::{{impl}}::drop<js::rust::Runtime>
                        at /checkout/src/liballoc/rc.rs:791
  55:     0x55cc4f26f0f4 - core::ptr::drop_in_place<alloc::rc::Rc<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  56:     0x55cc4f2466f2 - core::ptr::drop_in_place<script::script_thread::ScriptThread>
                        at /checkout/src/libcore/ptr.rs:61
  57:     0x55cc4f4bbc60 - script::script_thread::{{impl}}::create::{{closure}}
                        at /shared/dev/rust/servo/components/script/script_thread.rs:578
  58:     0x55cc4ee0e4ba - std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>
                        at /checkout/src/libstd/sys_common/backtrace.rs:136
  59:     0x55cc4e3eb933 - std::thread::{{impl}}::spawn::{{closure}}::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:394
  60:     0x55cc4e30ae7a - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  61:     0x55cc4e5674f2 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  62:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  63:     0x55cc4e402a6c - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  64:     0x55cc4e3a6ab5 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  65:     0x55cc4d9ab20b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:393
  66:     0x55cc4db68d13 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at /checkout/src/liballoc/boxed.rs:728
  67:     0x55cc53826a1b - alloc::boxed::{{impl}}::call_once<(),()>
                        at /checkout/src/liballoc/boxed.rs:738
                         - std::sys_common::thread::start_thread
                        at /checkout/src/libstd/sys_common/thread.rs:24
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at /checkout/src/libstd/sys/unix/thread.rs:90
  68:     0x7fbe4ff52493 - start_thread
  69:     0x7fbe4fa7fabe - __clone
  70:                0x0 - <unknown>
stack backtrace:
   0:     0x55cc52866374 - backtrace::backtrace::libunwind::trace
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
ERROR:servo: assertion failed: !global.is_null()
                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55cc528594df - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55cc4ca9b52e - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55cc53827d96 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:578
   4:     0x55cc4e3eba65 - std::panicking::begin_panic<&str>
                        at /checkout/src/libstd/panicking.rs:538
   5:     0x55cc4e06d394 - script::dom::globalscope::global_scope_from_global
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611
   6:     0x55cc4e06ae8e - script::dom::globalscope::{{impl}}::from_object
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:160
   7:     0x55cc4e069d70 - script::dom::globalscope::{{impl}}::from_reflector<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:152
   8:     0x55cc4dff06b3 - script::dom::bindings::reflector::DomObject::global<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/bindings/reflector.rs:81
   9:     0x55cc4e0bb0f3 - script::dom::promise::{{impl}}::drop
                        at /shared/dev/rust/servo/components/script/dom/promise.rs:64
  10:     0x55cc4fa309b4 - core::ptr::drop_in_place<script::dom::promise::Promise>
                        at /checkout/src/libcore/ptr.rs:61
  11:     0x55cc4fa35f28 - core::ptr::drop_in_place<alloc::rc::RcBox<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  12:     0x55cc4fac9688 - alloc::rc::{{impl}}::drop<script::dom::promise::Promise>
                        at /checkout/src/liballoc/rc.rs:791
  13:     0x55cc4dacbac4 - core::ptr::drop_in_place<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  14:     0x55cc4dac6b05 - core::ptr::drop_in_place<[alloc::rc::Rc<script::dom::promise::Promise>]>
                        at /checkout/src/libcore/ptr.rs:61
  15:     0x55cc4dc73ab1 - alloc::vec::{{impl}}::drop<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/liballoc/vec.rs:2110
  16:     0x55cc4e68cdb4 - core::ptr::drop_in_place<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>
                        at /checkout/src/libcore/ptr.rs:61
  17:     0x55cc4e687264 - core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  18:     0x55cc4e697698 - core::ptr::drop_in_place<core::cell::RefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  19:     0x55cc4e683124 - core::ptr::drop_in_place<script::dom::bindings::cell::DOMRefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  20:     0x55cc4e691f4f - core::ptr::drop_in_place<script::dom::htmlmediaelement::HTMLMediaElement>
                        at /checkout/src/libcore/ptr.rs:61
  21:     0x55cc4e6814d4 - core::ptr::drop_in_place<script::dom::htmlaudioelement::HTMLAudioElement>
                        at /checkout/src/libcore/ptr.rs:61
  22:     0x55cc4e6793d7 - core::ptr::drop_in_place<alloc::boxed::Box<script::dom::htmlaudioelement::HTMLAudioElement>>
                        at /checkout/src/libcore/ptr.rs:61
  23:     0x55cc4e8ce473 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:486
  24:     0x55cc4e66dd4c - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  25:     0x55cc4e2ff24c - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  26:     0x55cc4e5aa139 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  27:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  28:     0x55cc4e47f84a - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  29:     0x55cc4e3c7523 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  30:     0x55cc4f741d79 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,()>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  31:     0x55cc4e1f3178 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:481
  32:     0x55cc52f78b65 - _ZNK2js5Class10doFinalizeEPNS_6FreeOpEP8JSObject
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Class.h:815
  33:     0x55cc52f81342 - _ZN8JSObject8finalizeEPN2js6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobjinlines.h:85
  34:     0x55cc52f9b5dd - _ZN2js2gc5Arena8finalizeI8JSObjectEEmPNS_6FreeOpENS0_9AllocKindEm
  35:     0x55cc52f6f861 - FinalizeTypedArenas<JSObject>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:505
  36:     0x55cc52f3d12c - FinalizeArenas
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:539
  37:     0x55cc52f83b88 - _ZN2js2gc10ArenaLists16forceFinalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  38:     0x55cc52f83a31 - _ZN2js2gc10ArenaLists11finalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  39:     0x55cc52f44ac0 - _ZN2js2gc10ArenaLists30queueForegroundObjectsForSweepEPNS_6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:2839
  40:     0x55cc52f4cae5 - _ZN2js2gc9GCRuntime22beginSweepingZoneGroupERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5127
  41:     0x55cc52f4d23f - _ZN2js2gc9GCRuntime15beginSweepPhaseEbRNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5215
  42:     0x55cc52f4faaa - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5937
  43:     0x55cc52f5060a - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6174
  44:     0x55cc52f50b4b - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6287
  45:     0x55cc52f50eda - _ZN2js2gc9GCRuntime2gcE18JSGCInvocationKindN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6354
  46:     0x55cc531a64dd - _ZN9JSRuntime14destroyRuntimeEv
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Runtime.cpp:430
  47:     0x55cc52ef0693 - _ZN9JSContextD2Ev
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:892
  48:     0x55cc52f047c0 - js_delete_poison<JSContext>
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Utility.h:392
  49:     0x55cc52eedfd3 - _ZN2js14DestroyContextEP9JSContext
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:133
  50:     0x55cc52e885e3 - _Z17JS_DestroyRuntimeP9JSRuntime
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:464
  51:     0x55cc4fdc2d5c - js::rust::{{impl}}::drop
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/rust.rs:240
  52:     0x55cc4fa29614 - core::ptr::drop_in_place<js::rust::Runtime>
                        at /checkout/src/libcore/ptr.rs:61
  53:     0x55cc4fa17b28 - core::ptr::drop_in_place<alloc::rc::RcBox<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  54:     0x55cc4fac95a8 - alloc::rc::{{impl}}::drop<js::rust::Runtime>
                        at /checkout/src/liballoc/rc.rs:791
  55:     0x55cc4f26f0f4 - core::ptr::drop_in_place<alloc::rc::Rc<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  56:     0x55cc4f2466f2 - core::ptr::drop_in_place<script::script_thread::ScriptThread>
                        at /checkout/src/libcore/ptr.rs:61
  57:     0x55cc4f4bbc60 - script::script_thread::{{impl}}::create::{{closure}}
                        at /shared/dev/rust/servo/components/script/script_thread.rs:578
  58:     0x55cc4ee0e4ba - std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>
                        at /checkout/src/libstd/sys_common/backtrace.rs:136
  59:     0x55cc4e3eb933 - std::thread::{{impl}}::spawn::{{closure}}::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:394
  60:     0x55cc4e30ae7a - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  61:     0x55cc4e5674f2 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  62:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  63:     0x55cc4e402a6c - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  64:     0x55cc4e3a6ab5 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  65:     0x55cc4d9ab20b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:393
  66:     0x55cc4db68d13 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at /checkout/src/liballoc/boxed.rs:728
  67:     0x55cc53826a1b - alloc::boxed::{{impl}}::call_once<(),()>
                        at /checkout/src/liballoc/boxed.rs:738
                         - std::sys_common::thread::start_thread
                        at /checkout/src/libstd/sys_common/thread.rs:24
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at /checkout/src/libstd/sys/unix/thread.rs:90
  68:     0x7fbe4ff52493 - start_thread
  69:     0x7fbe4fa7fabe - __clone
  70:                0x0 - <unknown>
stack backtrace:
   0:     0x55cc52866374 - backtrace::backtrace::libunwind::trace
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
ERROR:servo: assertion failed: !global.is_null()
                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55cc528594df - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55cc4ca9b52e - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55cc53827d96 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:578
   4:     0x55cc4e3eba65 - std::panicking::begin_panic<&str>
                        at /checkout/src/libstd/panicking.rs:538
   5:     0x55cc4e06d394 - script::dom::globalscope::global_scope_from_global
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611
   6:     0x55cc4e06ae8e - script::dom::globalscope::{{impl}}::from_object
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:160
   7:     0x55cc4e069d70 - script::dom::globalscope::{{impl}}::from_reflector<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:152
   8:     0x55cc4dff06b3 - script::dom::bindings::reflector::DomObject::global<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/bindings/reflector.rs:81
   9:     0x55cc4e0bb0f3 - script::dom::promise::{{impl}}::drop
                        at /shared/dev/rust/servo/components/script/dom/promise.rs:64
  10:     0x55cc4fa309b4 - core::ptr::drop_in_place<script::dom::promise::Promise>
                        at /checkout/src/libcore/ptr.rs:61
  11:     0x55cc4fa35f28 - core::ptr::drop_in_place<alloc::rc::RcBox<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  12:     0x55cc4fac9688 - alloc::rc::{{impl}}::drop<script::dom::promise::Promise>
                        at /checkout/src/liballoc/rc.rs:791
  13:     0x55cc4dacbac4 - core::ptr::drop_in_place<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  14:     0x55cc4dac6b05 - core::ptr::drop_in_place<[alloc::rc::Rc<script::dom::promise::Promise>]>
                        at /checkout/src/libcore/ptr.rs:61
  15:     0x55cc4dc73ab1 - alloc::vec::{{impl}}::drop<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/liballoc/vec.rs:2110
  16:     0x55cc4e68cdb4 - core::ptr::drop_in_place<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>
                        at /checkout/src/libcore/ptr.rs:61
  17:     0x55cc4e687264 - core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  18:     0x55cc4e697698 - core::ptr::drop_in_place<core::cell::RefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  19:     0x55cc4e683124 - core::ptr::drop_in_place<script::dom::bindings::cell::DOMRefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  20:     0x55cc4e691f4f - core::ptr::drop_in_place<script::dom::htmlmediaelement::HTMLMediaElement>
                        at /checkout/src/libcore/ptr.rs:61
  21:     0x55cc4e6814d4 - core::ptr::drop_in_place<script::dom::htmlaudioelement::HTMLAudioElement>
                        at /checkout/src/libcore/ptr.rs:61
  22:     0x55cc4e6793d7 - core::ptr::drop_in_place<alloc::boxed::Box<script::dom::htmlaudioelement::HTMLAudioElement>>
                        at /checkout/src/libcore/ptr.rs:61
  23:     0x55cc4e8ce473 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:486
  24:     0x55cc4e66dd4c - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  25:     0x55cc4e2ff24c - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  26:     0x55cc4e5aa139 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  27:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  28:     0x55cc4e47f84a - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  29:     0x55cc4e3c7523 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  30:     0x55cc4f741d79 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,()>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  31:     0x55cc4e1f3178 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:481
  32:     0x55cc52f78b65 - _ZNK2js5Class10doFinalizeEPNS_6FreeOpEP8JSObject
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Class.h:815
  33:     0x55cc52f81342 - _ZN8JSObject8finalizeEPN2js6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobjinlines.h:85
  34:     0x55cc52f9b5dd - _ZN2js2gc5Arena8finalizeI8JSObjectEEmPNS_6FreeOpENS0_9AllocKindEm
  35:     0x55cc52f6f861 - FinalizeTypedArenas<JSObject>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:505
  36:     0x55cc52f3d12c - FinalizeArenas
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:539
  37:     0x55cc52f83b88 - _ZN2js2gc10ArenaLists16forceFinalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  38:     0x55cc52f83a31 - _ZN2js2gc10ArenaLists11finalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  39:     0x55cc52f44ac0 - _ZN2js2gc10ArenaLists30queueForegroundObjectsForSweepEPNS_6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:2839
  40:     0x55cc52f4cae5 - _ZN2js2gc9GCRuntime22beginSweepingZoneGroupERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5127
  41:     0x55cc52f4d23f - _ZN2js2gc9GCRuntime15beginSweepPhaseEbRNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5215
  42:     0x55cc52f4faaa - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5937
  43:     0x55cc52f5060a - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6174
  44:     0x55cc52f50b4b - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6287
  45:     0x55cc52f50eda - _ZN2js2gc9GCRuntime2gcE18JSGCInvocationKindN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6354
  46:     0x55cc531a64dd - _ZN9JSRuntime14destroyRuntimeEv
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Runtime.cpp:430
  47:     0x55cc52ef0693 - _ZN9JSContextD2Ev
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:892
  48:     0x55cc52f047c0 - js_delete_poison<JSContext>
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Utility.h:392
  49:     0x55cc52eedfd3 - _ZN2js14DestroyContextEP9JSContext
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:133
  50:     0x55cc52e885e3 - _Z17JS_DestroyRuntimeP9JSRuntime
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:464
  51:     0x55cc4fdc2d5c - js::rust::{{impl}}::drop
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/rust.rs:240
  52:     0x55cc4fa29614 - core::ptr::drop_in_place<js::rust::Runtime>
                        at /checkout/src/libcore/ptr.rs:61
  53:     0x55cc4fa17b28 - core::ptr::drop_in_place<alloc::rc::RcBox<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  54:     0x55cc4fac95a8 - alloc::rc::{{impl}}::drop<js::rust::Runtime>
                        at /checkout/src/liballoc/rc.rs:791
  55:     0x55cc4f26f0f4 - core::ptr::drop_in_place<alloc::rc::Rc<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  56:     0x55cc4f2466f2 - core::ptr::drop_in_place<script::script_thread::ScriptThread>
                        at /checkout/src/libcore/ptr.rs:61
  57:     0x55cc4f4bbc60 - script::script_thread::{{impl}}::create::{{closure}}
                        at /shared/dev/rust/servo/components/script/script_thread.rs:578
  58:     0x55cc4ee0e4ba - std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>
                        at /checkout/src/libstd/sys_common/backtrace.rs:136
  59:     0x55cc4e3eb933 - std::thread::{{impl}}::spawn::{{closure}}::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:394
  60:     0x55cc4e30ae7a - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  61:     0x55cc4e5674f2 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  62:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  63:     0x55cc4e402a6c - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  64:     0x55cc4e3a6ab5 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  65:     0x55cc4d9ab20b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:393
  66:     0x55cc4db68d13 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at /checkout/src/liballoc/boxed.rs:728
  67:     0x55cc53826a1b - alloc::boxed::{{impl}}::call_once<(),()>
                        at /checkout/src/liballoc/boxed.rs:738
                         - std::sys_common::thread::start_thread
                        at /checkout/src/libstd/sys_common/thread.rs:24
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at /checkout/src/libstd/sys/unix/thread.rs:90
  68:     0x7fbe4ff52493 - start_thread
  69:     0x7fbe4fa7fabe - __clone
  70:                0x0 - <unknown>
stack backtrace:
ERROR:servo: assertion failed: !global.is_null()
   0:     0x55cc52866374 - backtrace::backtrace::libunwind::trace
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53
                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55cc528594df - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55cc4ca9b52e - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55cc53827d96 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:578
   4:     0x55cc4e3eba65 - std::panicking::begin_panic<&str>
                        at /checkout/src/libstd/panicking.rs:538
   5:     0x55cc4e06d394 - script::dom::globalscope::global_scope_from_global
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611
   6:     0x55cc4e06ae8e - script::dom::globalscope::{{impl}}::from_object
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:160
   7:     0x55cc4e069d70 - script::dom::globalscope::{{impl}}::from_reflector<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:152
   8:     0x55cc4dff06b3 - script::dom::bindings::reflector::DomObject::global<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/bindings/reflector.rs:81
   9:     0x55cc4e0bb0f3 - script::dom::promise::{{impl}}::drop
                        at /shared/dev/rust/servo/components/script/dom/promise.rs:64
  10:     0x55cc4fa309b4 - core::ptr::drop_in_place<script::dom::promise::Promise>
                        at /checkout/src/libcore/ptr.rs:61
  11:     0x55cc4fa35f28 - core::ptr::drop_in_place<alloc::rc::RcBox<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  12:     0x55cc4fac9688 - alloc::rc::{{impl}}::drop<script::dom::promise::Promise>
                        at /checkout/src/liballoc/rc.rs:791
  13:     0x55cc4dacbac4 - core::ptr::drop_in_place<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  14:     0x55cc4dac6b05 - core::ptr::drop_in_place<[alloc::rc::Rc<script::dom::promise::Promise>]>
                        at /checkout/src/libcore/ptr.rs:61
  15:     0x55cc4dc73ab1 - alloc::vec::{{impl}}::drop<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/liballoc/vec.rs:2110
  16:     0x55cc4e68cdb4 - core::ptr::drop_in_place<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>
                        at /checkout/src/libcore/ptr.rs:61
  17:     0x55cc4e687264 - core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  18:     0x55cc4e697698 - core::ptr::drop_in_place<core::cell::RefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  19:     0x55cc4e683124 - core::ptr::drop_in_place<script::dom::bindings::cell::DOMRefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  20:     0x55cc4e691f4f - core::ptr::drop_in_place<script::dom::htmlmediaelement::HTMLMediaElement>
                        at /checkout/src/libcore/ptr.rs:61
  21:     0x55cc4e6814d4 - core::ptr::drop_in_place<script::dom::htmlaudioelement::HTMLAudioElement>
                        at /checkout/src/libcore/ptr.rs:61
  22:     0x55cc4e6793d7 - core::ptr::drop_in_place<alloc::boxed::Box<script::dom::htmlaudioelement::HTMLAudioElement>>
                        at /checkout/src/libcore/ptr.rs:61
  23:     0x55cc4e8ce473 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:486
  24:     0x55cc4e66dd4c - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  25:     0x55cc4e2ff24c - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  26:     0x55cc4e5aa139 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  27:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  28:     0x55cc4e47f84a - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  29:     0x55cc4e3c7523 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  30:     0x55cc4f741d79 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,()>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  31:     0x55cc4e1f3178 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:481
  32:     0x55cc52f78b65 - _ZNK2js5Class10doFinalizeEPNS_6FreeOpEP8JSObject
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Class.h:815
  33:     0x55cc52f81342 - _ZN8JSObject8finalizeEPN2js6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobjinlines.h:85
  34:     0x55cc52f9b5dd - _ZN2js2gc5Arena8finalizeI8JSObjectEEmPNS_6FreeOpENS0_9AllocKindEm
  35:     0x55cc52f6f861 - FinalizeTypedArenas<JSObject>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:505
  36:     0x55cc52f3d12c - FinalizeArenas
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:539
  37:     0x55cc52f83b88 - _ZN2js2gc10ArenaLists16forceFinalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  38:     0x55cc52f83a31 - _ZN2js2gc10ArenaLists11finalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  39:     0x55cc52f44ac0 - _ZN2js2gc10ArenaLists30queueForegroundObjectsForSweepEPNS_6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:2839
  40:     0x55cc52f4cae5 - _ZN2js2gc9GCRuntime22beginSweepingZoneGroupERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5127
  41:     0x55cc52f4d23f - _ZN2js2gc9GCRuntime15beginSweepPhaseEbRNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5215
  42:     0x55cc52f4faaa - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5937
  43:     0x55cc52f5060a - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6174
  44:     0x55cc52f50b4b - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6287
  45:     0x55cc52f50eda - _ZN2js2gc9GCRuntime2gcE18JSGCInvocationKindN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6354
  46:     0x55cc531a64dd - _ZN9JSRuntime14destroyRuntimeEv
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Runtime.cpp:430
  47:     0x55cc52ef0693 - _ZN9JSContextD2Ev
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:892
  48:     0x55cc52f047c0 - js_delete_poison<JSContext>
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Utility.h:392
  49:     0x55cc52eedfd3 - _ZN2js14DestroyContextEP9JSContext
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:133
  50:     0x55cc52e885e3 - _Z17JS_DestroyRuntimeP9JSRuntime
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:464
  51:     0x55cc4fdc2d5c - js::rust::{{impl}}::drop
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/rust.rs:240
  52:     0x55cc4fa29614 - core::ptr::drop_in_place<js::rust::Runtime>
                        at /checkout/src/libcore/ptr.rs:61
  53:     0x55cc4fa17b28 - core::ptr::drop_in_place<alloc::rc::RcBox<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  54:     0x55cc4fac95a8 - alloc::rc::{{impl}}::drop<js::rust::Runtime>
                        at /checkout/src/liballoc/rc.rs:791
  55:     0x55cc4f26f0f4 - core::ptr::drop_in_place<alloc::rc::Rc<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  56:     0x55cc4f2466f2 - core::ptr::drop_in_place<script::script_thread::ScriptThread>
                        at /checkout/src/libcore/ptr.rs:61
  57:     0x55cc4f4bbc60 - script::script_thread::{{impl}}::create::{{closure}}
                        at /shared/dev/rust/servo/components/script/script_thread.rs:578
  58:     0x55cc4ee0e4ba - std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>
                        at /checkout/src/libstd/sys_common/backtrace.rs:136
  59:     0x55cc4e3eb933 - std::thread::{{impl}}::spawn::{{closure}}::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:394
  60:     0x55cc4e30ae7a - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  61:     0x55cc4e5674f2 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  62:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  63:     0x55cc4e402a6c - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  64:     0x55cc4e3a6ab5 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  65:     0x55cc4d9ab20b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:393
  66:     0x55cc4db68d13 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at /checkout/src/liballoc/boxed.rs:728
  67:     0x55cc53826a1b - alloc::boxed::{{impl}}::call_once<(),()>
                        at /checkout/src/liballoc/boxed.rs:738
                         - std::sys_common::thread::start_thread
                        at /checkout/src/libstd/sys_common/thread.rs:24
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at /checkout/src/libstd/sys/unix/thread.rs:90
  68:     0x7fbe4ff52493 - start_thread
  69:     0x7fbe4fa7fabe - __clone
  70:                0x0 - <unknown>
stack backtrace:
   0:     0x55cc52866374 - backtrace::backtrace::libunwind::trace
ERROR:servo: assertion failed: !global.is_null()                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/libunwind.rs:53

                         - backtrace::backtrace::trace<closure>
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/backtrace/mod.rs:42
   1:     0x55cc528594df - backtrace::capture::{{impl}}::new
                        at /shared/dev/rust/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.2/src/capture.rs:64
   2:     0x55cc4ca9b52e - servo::main::{{closure}}
                        at /shared/dev/rust/servo/ports/servo/main.rs:130
   3:     0x55cc53827d96 - std::panicking::rust_panic_with_hook
                        at /checkout/src/libstd/panicking.rs:578
   4:     0x55cc4e3eba65 - std::panicking::begin_panic<&str>
                        at /checkout/src/libstd/panicking.rs:538
   5:     0x55cc4e06d394 - script::dom::globalscope::global_scope_from_global
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:611
   6:     0x55cc4e06ae8e - script::dom::globalscope::{{impl}}::from_object
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:160
   7:     0x55cc4e069d70 - script::dom::globalscope::{{impl}}::from_reflector<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/globalscope.rs:152
   8:     0x55cc4dff06b3 - script::dom::bindings::reflector::DomObject::global<script::dom::promise::Promise>
                        at /shared/dev/rust/servo/components/script/dom/bindings/reflector.rs:81
   9:     0x55cc4e0bb0f3 - script::dom::promise::{{impl}}::drop
                        at /shared/dev/rust/servo/components/script/dom/promise.rs:64
  10:     0x55cc4fa309b4 - core::ptr::drop_in_place<script::dom::promise::Promise>
                        at /checkout/src/libcore/ptr.rs:61
  11:     0x55cc4fa35f28 - core::ptr::drop_in_place<alloc::rc::RcBox<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  12:     0x55cc4fac9688 - alloc::rc::{{impl}}::drop<script::dom::promise::Promise>
                        at /checkout/src/liballoc/rc.rs:791
  13:     0x55cc4dacbac4 - core::ptr::drop_in_place<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/libcore/ptr.rs:61
  14:     0x55cc4dac6b05 - core::ptr::drop_in_place<[alloc::rc::Rc<script::dom::promise::Promise>]>
                        at /checkout/src/libcore/ptr.rs:61
  15:     0x55cc4dc73ab1 - alloc::vec::{{impl}}::drop<alloc::rc::Rc<script::dom::promise::Promise>>
                        at /checkout/src/liballoc/vec.rs:2110
  16:     0x55cc4e68cdb4 - core::ptr::drop_in_place<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>
                        at /checkout/src/libcore/ptr.rs:61
  17:     0x55cc4e687264 - core::ptr::drop_in_place<core::cell::UnsafeCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  18:     0x55cc4e697698 - core::ptr::drop_in_place<core::cell::RefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  19:     0x55cc4e683124 - core::ptr::drop_in_place<script::dom::bindings::cell::DOMRefCell<alloc::vec::Vec<alloc::rc::Rc<script::dom::promise::Promise>>>>
                        at /checkout/src/libcore/ptr.rs:61
  20:     0x55cc4e691f4f - core::ptr::drop_in_place<script::dom::htmlmediaelement::HTMLMediaElement>
                        at /checkout/src/libcore/ptr.rs:61
  21:     0x55cc4e6814d4 - core::ptr::drop_in_place<script::dom::htmlaudioelement::HTMLAudioElement>
                        at /checkout/src/libcore/ptr.rs:61
  22:     0x55cc4e6793d7 - core::ptr::drop_in_place<alloc::boxed::Box<script::dom::htmlaudioelement::HTMLAudioElement>>
                        at /checkout/src/libcore/ptr.rs:61
  23:     0x55cc4e8ce473 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize::{{closure}}
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:486
  24:     0x55cc4e66dd4c - core::ops::function::FnOnce::call_once<closure,()>
                        at /checkout/src/libcore/ops/function.rs:223
  25:     0x55cc4e2ff24c - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  26:     0x55cc4e5aa139 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  27:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  28:     0x55cc4e47f84a - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  29:     0x55cc4e3c7523 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  30:     0x55cc4f741d79 - js::panic::wrap_panic<std::panic::AssertUnwindSafe<closure>,()>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/panic.rs:22
  31:     0x55cc4e1f3178 - script::dom::bindings::codegen::Bindings::HTMLAudioElementBinding::HTMLAudioElementBinding::_finalize
                        at /shared/dev/rust/servo/target/debug/build/script-bde6f1c9971e240a/out/Bindings/HTMLAudioElementBinding.rs:481
  32:     0x55cc52f78b65 - _ZNK2js5Class10doFinalizeEPNS_6FreeOpEP8JSObject
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Class.h:815
  33:     0x55cc52f81342 - _ZN8JSObject8finalizeEPN2js6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsobjinlines.h:85
  34:     0x55cc52f9b5dd - _ZN2js2gc5Arena8finalizeI8JSObjectEEmPNS_6FreeOpENS0_9AllocKindEm
  35:     0x55cc52f6f861 - FinalizeTypedArenas<JSObject>
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:505
  36:     0x55cc52f3d12c - FinalizeArenas
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:539
  37:     0x55cc52f83b88 - _ZN2js2gc10ArenaLists16forceFinalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  38:     0x55cc52f83a31 - _ZN2js2gc10ArenaLists11finalizeNowEPNS_6FreeOpENS0_9AllocKindENS1_14KeepArenasEnumEPPNS0_5ArenaE
  39:     0x55cc52f44ac0 - _ZN2js2gc10ArenaLists30queueForegroundObjectsForSweepEPNS_6FreeOpE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:2839
  40:     0x55cc52f4cae5 - _ZN2js2gc9GCRuntime22beginSweepingZoneGroupERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5127
  41:     0x55cc52f4d23f - _ZN2js2gc9GCRuntime15beginSweepPhaseEbRNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5215
  42:     0x55cc52f4faaa - _ZN2js2gc9GCRuntime23incrementalCollectSliceERNS_11SliceBudgetEN2JS8gcreason6ReasonERNS_26AutoLockForExclusiveAccessE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:5937
  43:     0x55cc52f5060a - _ZN2js2gc9GCRuntime7gcCycleEbRNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6174
  44:     0x55cc52f50b4b - _ZN2js2gc9GCRuntime7collectEbNS_11SliceBudgetEN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6287
  45:     0x55cc52f50eda - _ZN2js2gc9GCRuntime2gcE18JSGCInvocationKindN2JS8gcreason6ReasonE
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsgc.cpp:6354
  46:     0x55cc531a64dd - _ZN9JSRuntime14destroyRuntimeEv
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/vm/Runtime.cpp:430
  47:     0x55cc52ef0693 - _ZN9JSContextD2Ev
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:892
  48:     0x55cc52f047c0 - js_delete_poison<JSContext>
                        at /shared/dev/rust/servo/target/debug/build/mozjs_sys-3f17251bb3fa499d/out/dist/include/js/Utility.h:392
  49:     0x55cc52eedfd3 - _ZN2js14DestroyContextEP9JSContext
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jscntxt.cpp:133
  50:     0x55cc52e885e3 - _Z17JS_DestroyRuntimeP9JSRuntime
                        at /shared/dev/rust/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/834ce35/mozjs/js/src/jsapi.cpp:464
  51:     0x55cc4fdc2d5c - js::rust::{{impl}}::drop
                        at /shared/dev/rust/servo/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/3de4ff3/src/rust.rs:240
  52:     0x55cc4fa29614 - core::ptr::drop_in_place<js::rust::Runtime>
                        at /checkout/src/libcore/ptr.rs:61
  53:     0x55cc4fa17b28 - core::ptr::drop_in_place<alloc::rc::RcBox<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  54:     0x55cc4fac95a8 - alloc::rc::{{impl}}::drop<js::rust::Runtime>
                        at /checkout/src/liballoc/rc.rs:791
  55:     0x55cc4f26f0f4 - core::ptr::drop_in_place<alloc::rc::Rc<js::rust::Runtime>>
                        at /checkout/src/libcore/ptr.rs:61
  56:     0x55cc4f2466f2 - core::ptr::drop_in_place<script::script_thread::ScriptThread>
                        at /checkout/src/libcore/ptr.rs:61
  57:     0x55cc4f4bbc60 - script::script_thread::{{impl}}::create::{{closure}}
                        at /shared/dev/rust/servo/components/script/script_thread.rs:578
  58:     0x55cc4ee0e4ba - std::sys_common::backtrace::__rust_begin_short_backtrace<closure,()>
                        at /checkout/src/libstd/sys_common/backtrace.rs:136
  59:     0x55cc4e3eb933 - std::thread::{{impl}}::spawn::{{closure}}::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:394
  60:     0x55cc4e30ae7a - std::panic::{{impl}}::call_once<(),closure>
                        at /checkout/src/libstd/panic.rs:296
  61:     0x55cc4e5674f2 - std::panicking::try::do_call<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panicking.rs:480
  62:     0x55cc5382ef2c - panic_unwind::__rust_maybe_catch_panic
                        at /checkout/src/libpanic_unwind/lib.rs:99
  63:     0x55cc4e402a6c - std::panicking::try<(),std::panic::AssertUnwindSafe<closure>>
                        at /checkout/src/libstd/panicking.rs:459
  64:     0x55cc4e3a6ab5 - std::panic::catch_unwind<std::panic::AssertUnwindSafe<closure>,()>
                        at /checkout/src/libstd/panic.rs:361
  65:     0x55cc4d9ab20b - std::thread::{{impl}}::spawn::{{closure}}<closure,()>
                        at /checkout/src/libstd/thread/mod.rs:393
  66:     0x55cc4db68d13 - alloc::boxed::{{impl}}::call_box<(),closure>
                        at /checkout/src/liballoc/boxed.rs:728
  67:     0x55cc53826a1b - alloc::boxed::{{impl}}::call_once<(),()>
                        at /checkout/src/liballoc/boxed.rs:738
                         - std::sys_common::thread::start_thread
                        at /checkout/src/libstd/sys_common/thread.rs:24
                         - std::sys::imp::thread::{{impl}}::new::thread_start
                        at /checkout/src/libstd/sys/unix/thread.rs:90
  68:     0x7fbe4ff52493 - start_thread
  69:     0x7fbe4fa7fabe - __clone
  70:                0x0 - <unknown>
ERROR:servo: assertion failed: !global.is_null()
Pipeline failed in hard-fail mode.  Crashing!
Servo exited with return value 1
@jdm
Copy link
Member

@jdm jdm commented Feb 9, 2018

This is a more minimized testcase:

<audio></audio>
<script>
  document.querySelector("audio").play();
  location.reload();
</script>
@jdm jdm changed the title assertion failed: !global.is_null() assertion failed (!global.is_null()) during Promise destructor after navigation Feb 9, 2018
@jdm
Copy link
Member

@jdm jdm commented Mar 13, 2018

The way to solve this would be to have a different way of obtaining the JSContext in the Promise destructor. Maybe we couold add a ScriptThread API for it.

@nox
Copy link
Member

@nox nox commented Mar 13, 2018

I'm on it.

@nox nox self-assigned this Mar 13, 2018
bors-servo added a commit that referenced this issue Mar 15, 2018
Don't access the reflector when dropping a Promise (fixes #18651)

The reflector may be dead already.

<!-- 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/20305)
<!-- Reviewable:end -->
pmocher pushed a commit to Brody-Eastwood/servo that referenced this issue Mar 30, 2018
# This is the 1st commit message:

Don't access the reflector when dropping a Promise (fixes servo#18651)

The reflector may be dead already.

# This is the commit message servo#2:

Run automated test for memory report charter.
# This is the commit message servo#3:

Run memory charting test on CI.
# This is the commit message servo#4:

Move the TravisCI test to the quick group.
# This is the commit message servo#5:

Add timeout pref to the mozilla/worklets wpt tests

# This is the commit message servo#6:

Added .ini for test_paint_worklet_timeout.html

# This is the commit message servo#7:

Update the in-tree status of WPT syncing.

# This is the commit message servo#8:

refactor(window): reference winit where applicable

- relates with servo#20299

# This is the commit message servo#9:

Update mozangle to 0.1.6.

# This is the commit message servo#10:

Update to handle WebRender API changes

Items now only take a clipping rectangle instead of a LocalClip.

# This is the commit message servo#11:

Update WR (local clip API change, texture cache optimizations).

# This is the commit message servo#12:

Update the MULTIPROCESS static when changing default options

# This is the commit message servo#13:

Add Windows support to the --nightly | -n flag.

# This is the commit message servo#14:

build(cargo): enable webrender capture feature

# This is the commit message servo#15:

feat(windowevent): expose CaptureWebRender event

# This is the commit message servo#16:

feat(window): bind hotkey to trigger capture event

# This is the commit message servo#17:

Avoid using WPT test runner to update the test manifest.

# This is the commit message servo#18:

Use typed coordinates.

We use Size2D and Point2D across compositing, constellation and script,
losing the type of pixels we use (DevicePixel, DeviceIndepententPixel
or CSSPixel) along the way, which might lead to bugs like
window.outerHeight not taking into account the page zoom (using
DeviceIndepententPixel instead of CSSPixel).

# This is the commit message servo#19:

alias some euclid types

# This is the commit message servo#20:

remove WindowMethods::size()

# This is the commit message servo#21:

Remove update-manifest argument that is no longer valid.
# This is the commit message servo#22:

Update web-platform-tests to revision e87f38097902e16348d4e17f4fe3bc2d0112bff1

# This is the commit message servo#23:

Add icon to servo.exe

# This is the commit message servo#24:

Use mozjs 0.3 fork without Heap::new

# This is the commit message servo#25:

Root JS object members in dictionaries

# This is the commit message servo#26:

Root `any` members in dictionaries

# This is the commit message servo#27:

Add key/value iterable HTML benchmark

# This is the commit message servo#28:

Fix tabs

# This is the commit message servo#29:

Use upstream mozjs 0.3

# This is the commit message servo#30:

Update WR (radial gradient optimizations).

# This is the commit message servo#31:

CounterBound::Integer made to store an Integer

# This is the commit message servo#32:

style: Remove unsound Atom From implementations.

Fixes servo#20158

# This is the commit message servo#33:

style: Cleanup @-moz-document parsing a bit.

MozReview-Commit-ID: 7vd0BLAqM0v
Bug: 1446470
Reviewed-by: xidorn

# This is the commit message servo#34:

style: Allow @-moz-document url-prefix() on content.

MozReview-Commit-ID: zaT41fpsDT
Bug: 1446470
Reviewed-by: xidorn

# This is the commit message servo#35:

style: Add another pref to control the url-prefix hack.

MozReview-Commit-ID: D4qL0oO69Uh
Bug: 1446470
Reviewed-by: xidorn

# This is the commit message servo#36:

style: Update bindings.

# This is the commit message servo#37:

Update web-platform-tests to revision 790e6601ee8b4b412b6ad9f6fde466b7ccb9cb7e

# This is the commit message servo#38:

style: Better Shadow DOM assertions.

Bug: 1445682
Reviewed-by: xidorn
Differential Revision: https://phabricator.services.mozilla.com/D748

# This is the commit message servo#39:

Support memory report logs with interleaved non-report output, added automated tests

# This is the commit message servo#40:

Update WR revision.
# This is the commit message servo#41:

Add Servo_Property_IsShorthand to geckolib/glue.rs

# This is the commit message servo#42:

Re-expose webrender debugger feature in components/servo

Update ws in debugger  to 0.7.3

Update lockfile

# This is the commit message servo#43:

Update web-platform-tests to revision 3ec34e5a2c8cbeeb7fad521cce0daf923b272a92

# This is the commit message servo#44:

Make `type` argument as optional and ignore it in open method

# This is the commit message servo#45:

Update steps with new spec

# This is the commit message servo#46:

Make type-argument.window.js test as pass

# This is the commit message servo#47:

Simplify GetTexParameter

# This is the commit message servo#48:

Simplify VertexAttribOffset

# This is the commit message servo#49:

Simplify BufferParameter

# This is the commit message servo#50:

Simplify GetShaderPrecisionFormat

# This is the commit message servo#51:

Update web-platform-tests to revision 3a8328470d53c4501e31cec2775c4d33821c2275

# This is the commit message servo#52:

Mouse position from glutin is DevicePixel

# This is the commit message servo#53:

Update servo-websocket to 0.21

# This is the commit message servo#54:

Bump ipc-channel and bincode

This required bumping uuid too which unfortunately duplicated rand.

# This is the commit message servo#55:

Remove our dependency on the gcc crate

# This is the commit message servo#56:

Blobs support typed arrays now

# This is the commit message servo#57:

Bump parking_lot to 0.5

# This is the commit message servo#58:

initial shot at initial steps

# This is the commit message servo#59:

Second shot at initial steps

# This is the commit message servo#60:

Progress on initial steps

# This is the commit message servo#61:

initial shot at initial steps
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.

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