servo / pathfinder

A fast, practical GPU rasterizer for fonts and vector graphics
Apache License 2.0
3.59k stars 201 forks source link

GL error 0x502 causes a double panic #344

Open myrrlyn opened 4 years ago

myrrlyn commented 4 years ago

Platform

Windows 10 x64, build 19631.mn_release-200514-1410

Steps

git clone https://github.com/sunjay/turtle.git
cd turtle
git checkout async
cargo run --example heart

Behavior

The program draws a heart on-screen. Wait for the window to be filled with pink, indicating that the program is complete, and idling.

Close the window.

This double-panics. The turtle crate begins a panic when its IPC connections are severed, so I am unsure if the overlapping panic is Pathfinder's.

Backtrace

The backtrace is quite long:

```text thread 'tokio-runtime-worker' panicked at 'GL error: 0x502 (INVALID_OPERATION)', %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1485:13 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'tokio-runtime-worker' panicked at 'GL error: 0x502 (INVALID_OPERATION)', %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1485:13 stack backtrace: 0: 0x7ff652ba853f - backtrace::backtrace::trace_unsynchronized at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.44\src\backtrace\mod.rs:66 1: 0x7ff652ba853f - std::sys_common::backtrace::_print_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:78 2: 0x7ff652ba853f - std::sys_common::backtrace::_print::{{impl}}::fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:59 3: 0x7ff652bbd8eb - core::fmt::write at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libcore\fmt\mod.rs:1063 4: 0x7ff652ba596c - std::io::Write::write_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\io\mod.rs:1426 5: 0x7ff652bab65c - std::sys_common::backtrace::_print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:62 6: 0x7ff652bab65c - std::sys_common::backtrace::print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:49 7: 0x7ff652bab65c - std::panicking::default_hook::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:204 8: 0x7ff652bab2af - std::panicking::default_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:224 9: 0x7ff652babe37 - std::panicking::rust_panic_with_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:470 10: 0x7ff652bab9bf - std::panicking::begin_panic_handler at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:378 11: 0x7ff652bab92c - std::panicking::begin_panic_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:332 12: 0x7ff652ae9f2f - pathfinder_gl::ck at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1485 13: 0x7ff652ae9f2f - pathfinder_gl::{{impl}}::drop at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1224 14: 0x7ff6529e8a1c - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 15: 0x7ff6529eb1fe - core::ptr::drop_in_place> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 16: 0x7fff16501030 - 17: 0x7fff16504a2b - is_exception_typeof 18: 0x7fff1650e3d4 - _C_specific_handler 19: 0x7fff16503cb0 - is_exception_typeof 20: 0x7fff1650ed01 - _CxxFrameHandler3 21: 0x7fff402f911f - _chkstk 22: 0x7fff40297c76 - RtlUnwindEx 23: 0x7fff1650e892 - _C_specific_handler 24: 0x7fff16502941 - is_exception_typeof 25: 0x7fff16502d6d - is_exception_typeof 26: 0x7fff16503dac - is_exception_typeof 27: 0x7fff1650ed01 - _CxxFrameHandler3 28: 0x7fff402f909f - _chkstk 29: 0x7fff402970ec - RtlUnwind 30: 0x7fff4029aeee - RtlRaiseException 31: 0x7fff3dca361c - RaiseException 32: 0x7fff165061e0 - CxxThrowException 33: 0x7ff652baf2b1 - panic_unwind::imp::panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\seh.rs:308 34: 0x7ff652baf239 - panic_unwind::__rust_start_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:111 35: 0x7ff652bac028 - std::panicking::rust_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:522 36: 0x7ff652babef1 - std::panicking::rust_panic_with_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:492 37: 0x7ff652bab9bf - std::panicking::begin_panic_handler at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:378 38: 0x7ff652bab92c - std::panicking::begin_panic_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:332 39: 0x7ff652aea1d5 - pathfinder_gl::ck at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1485 40: 0x7ff652aea1d5 - pathfinder_gl::{{impl}}::drop at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1257 41: 0x7ff6529ea9a5 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 42: 0x7ff6529ea9a5 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 43: 0x7ff6529ea9a5 - core::ptr::drop_in_place> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 44: 0x7ff6529e6cbd - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 45: 0x7ff652a42e0d - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 46: 0x7ff652a42e0d - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 47: 0x7ff652a45146 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 48: 0x7ff652a45146 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 49: 0x7ff652a45146 - core::mem::drop at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\mem\mod.rs:749 50: 0x7ff652a45146 - core::cell::Cell, mut winit::event_loop::ControlFlow*)>>>>::set at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\cell.rs:346 51: 0x7ff652a45146 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner::reset_runner at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:104 52: 0x7ff652aa3fdf - winit::platform_impl::platform::event_loop::EventLoop::run_return at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform_impl\windows\event_loop.rs:231 53: 0x7ff652a98001 - winit::platform::desktop::{{impl}}::run_return at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform\desktop.rs:51 54: 0x7ff652a98001 - turtle::renderer_server::main::run_main> at M:\Projects\Rust\turtle\src\renderer_server\main.rs:137 55: 0x7ff652a2cfc9 - tokio::loom::std::unsafe_cell::UnsafeCell>>::with_mut>,core::task::poll::Po at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\loom\std\unsafe_cell.rs:14 56: 0x7ff652a95aca - tokio::runtime::task::core::Core, tokio::runtime::blocking::schedule::NoopSchedule>::poll,tokio::runtime::blocking::schedule::NoopSchedule> at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\core.rs:158 57: 0x7ff652a5355c - tokio::runtime::task::harness::{{impl}}::poll::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\harness.rs:107 58: 0x7ff652a5355c - core::ops::function::FnOnce::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ops\function.rs:232 59: 0x7ff652a5355c - std::panic::{{impl}}::call_once>,closure-0> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:318 60: 0x7ff652a18c39 - std::panicking::try::do_call,core::task::poll::Poll>> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:303 61: 0x7ff652baf1b2 - panic_unwind::__rust_maybe_catch_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:86 62: 0x7ff652ac6e7b - tokio::runtime::task::harness::Harness, tokio::runtime::blocking::schedule::NoopSchedule>::poll,tokio::runtime::blocking::schedule::NoopSchedul at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\harness.rs:89 63: 0x7ff652b89eee - tokio::runtime::task::raw::RawTask::poll at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\raw.rs:66 64: 0x7ff652b89eee - tokio::runtime::task::Notified::run at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\mod.rs:169 65: 0x7ff652b89eee - tokio::runtime::blocking::pool::Inner::run at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:230 66: 0x7ff652b835a4 - tokio::runtime::blocking::pool::{{impl}}::spawn_thread::{{closure}}::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:210 67: 0x7ff652b835a4 - tokio::runtime::context::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\context.rs:72 68: 0x7ff652b8ad51 - tokio::runtime::handle::Handle::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\handle.rs:76 69: 0x7ff652b8ad51 - tokio::runtime::blocking::pool::{{impl}}::spawn_thread::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:209 70: 0x7ff652b8ad51 - std::sys_common::backtrace::__rust_begin_short_backtrace at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\sys_common\backtrace.rs:130 71: 0x7ff652b755f8 - std::thread::{{impl}}::spawn_unchecked::{{closure}}::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\mod.rs:475 72: 0x7ff652b755f8 - std::panic::{{impl}}::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:318 73: 0x7ff652b755f8 - std::panicking::try::do_call,()> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:303 74: 0x7ff652baf1b2 - panic_unwind::__rust_maybe_catch_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:86 75: 0x7ff652b86bc8 - std::panicking::try at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:281 76: 0x7ff652b86bc8 - std::panic::catch_unwind at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:394 77: 0x7ff652b86bc8 - std::thread::{{impl}}::spawn_unchecked::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\mod.rs:474 78: 0x7ff652b86bc8 - core::ops::function::FnOnce::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ops\function.rs:232 79: 0x7ff652ba1517 - alloc::boxed::{{impl}}::call_once<(),FnOnce<()>> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\liballoc\boxed.rs:1017 80: 0x7ff652bad96c - alloc::boxed::{{impl}}::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\liballoc\boxed.rs:1017 81: 0x7ff652bad96c - std::sys_common::thread::start_thread at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\thread.rs:13 82: 0x7ff652bad96c - std::sys::windows::thread::{{impl}}::new::thread_start at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys\windows\thread.rs:51 83: 0x7fff3f119784 - BaseThreadInitThunk 84: 0x7fff402596a1 - RtlUserThreadStart thread panicked while panicking. aborting. error: process didn't exit successfully: `target\debug\examples\heart.exe` (exit code: 0xc000001d, STATUS_ILLEGAL_INSTRUCTION) ```

I am filing this against Pathfinder, as it is mentioned in traces 12-40; specifically, function pathfinder_gl::ck appears to panic twice

Notes

This does not happen in cargo run --example heart --release. It appears only in development builds, and is not affected by the [profile.dev] opt-level setting in turtle’s manifest, nor by switching from crates.io to current Git master.

sunjay commented 4 years ago

I am the author of the turtle crate and I can help provide details about any of the rendering code. All of the code dealing with pathfinder is in this file: https://github.com/sunjay/turtle/blob/async/src/renderer_server/renderer.rs

My guess is that this is happening sometime during drop. The turtle crate stops rendering after the drawing is complete, so I don't think it could be in the middle of any draw calls. Happy to try to reduce it if you give me some idea of where to look.

myrrlyn commented 4 years ago

Oh, right:

Closing the window during active draw routines causes the same top-level message about error 0x502, but I do not receive a backtrace.

myrrlyn commented 4 years ago

Retry with my environment forced to RUST_BACKTRACE="full" gives me two backtraces, though the second appears to be turtle’s and unrelated to Pathfinder:

```text > $env:RUST_BACKTRACE="full" > cargo run --example heart Finished dev [optimized + debuginfo] target(s) in 3.76s Running `target\debug\examples\heart.exe` thread 'tokio-runtime-worker' panicked at 'GL error: 0x502 (INVALID_OPERATION)', %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rsthread ':main1485' panicked at ':IPC response not received: Cannot continue to run turtle commands after window is closed. This panic stops the thread, but is not necessarily an error.13', src\renderer_client.rsstack backtrace: :154:35 0: 0x7ff76e3e853f - backtrace::backtrace::trace_unsynchronized at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.44\src\backtrace\mod.rs:66 1: 0x7ff76e3e853f - std::sys_common::backtrace::_print_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:78 2: 0x7ff76e3e853f - std::sys_common::backtrace::_print::{{impl}}::fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:59 3: 0x7ff76e3fd8eb - core::fmt::write at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libcore\fmt\mod.rs:1063 4: 0x7ff76e3e596c - std::io::Write::write_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\io\mod.rs:1426 5: 0x7ff76e3eb65c - std::sys_common::backtrace::_print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:62 6: 0x7ff76e3eb65c - std::sys_common::backtrace::print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:49 7: 0x7ff76e3eb65c - std::panicking::default_hook::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:204 8: 0x7ff76e3eb2af - std::panicking::default_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:224 9: 0x7ff76e3ebe37 - std::panicking::rust_panic_with_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:470 10: 0x7ff76e3eb9bf - std::panicking::begin_panic_handler at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:378 11: 0x7ff76e3eb92c - std::panicking::begin_panic_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:332 12: 0x7ff76e32a1d5 - pathfinder_gl::ck at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1485 13: 0x7ff76e32a1d5 - pathfinder_gl::{{impl}}::drop at %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs:1257 14: 0x7ff76e22a9a5 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 15: 0x7ff76e22a9a5 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 16: 0x7ff76e22a9a5 - core::ptr::drop_in_place> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 17: 0x7ff76e226cbd - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 18: 0x7ff76e282e0d - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 19: 0x7ff76e282e0d - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 20: 0x7ff76e285146 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 21: 0x7ff76e285146 - core::ptr::drop_in_place at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ptr\mod.rs:177 22: 0x7ff76e285146 - core::mem::drop at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\mem\mod.rs:749 23: 0x7ff76e285146 - core::cell::Cell, mut winit::event_loop::ControlFlow*)>>>>::set at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\cell.rs:346 24: 0x7ff76e285146 - winit::platform_impl::platform::event_loop::runner::EventLoopRunner::reset_runner at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform_impl\windows\event_loop\runner.rs:104 25: 0x7ff76e2e3fdf - winit::platform_impl::platform::event_loop::EventLoop::run_return at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform_impl\windows\event_loop.rs:231 26: 0x7ff76e2d8001 - winit::platform::desktop::{{impl}}::run_return at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\winit-0.22.2\src\platform\desktop.rs:51 27: 0x7ff76e2d8001 - turtle::renderer_server::main::run_main> at M:\Projects\Rust\turtle\src\renderer_server\main.rs:137 28: 0x7ff76e26cfc9 - tokio::loom::std::unsafe_cell::UnsafeCell>>::with_mut>,core::task::poll::Po at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\loom\std\unsafe_cell.rs:14 29: 0x7ff76e2d5aca - tokio::runtime::task::core::Core, tokio::runtime::blocking::schedule::NoopSchedule>::poll,tokio::runtime::blocking::schedule::NoopSchedule> at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\core.rs:158 30: 0x7ff76e29355c - tokio::runtime::task::harness::{{impl}}::poll::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\harness.rs:107 31: 0x7ff76e29355c - core::ops::function::FnOnce::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ops\function.rs:232 32: 0x7ff76e29355c - std::panic::{{impl}}::call_once>,closure-0> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:318 33: 0x7ff76e258c39 - std::panicking::try::do_call,core::task::poll::Poll>> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:303 34: 0x7ff76e3ef1b2 - panic_unwind::__rust_maybe_catch_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:86 35: 0x7ff76e306e7b - tokio::runtime::task::harness::Harness, tokio::runtime::blocking::schedule::NoopSchedule>::poll,tokio::runtime::blocking::schedule::NoopSchedul at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\harness.rs:89 36: 0x7ff76e3c9eee - tokio::runtime::task::raw::RawTask::poll at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\raw.rs:66 37: 0x7ff76e3c9eee - tokio::runtime::task::Notified::run at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\task\mod.rs:169 38: 0x7ff76e3c9eee - tokio::runtime::blocking::pool::Inner::run at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:230 39: 0x7ff76e3c35a4 - tokio::runtime::blocking::pool::{{impl}}::spawn_thread::{{closure}}::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:210 40: 0x7ff76e3c35a4 - tokio::runtime::context::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\context.rs:72 41: 0x7ff76e3cad51 - tokio::runtime::handle::Handle::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\handle.rs:76 42: 0x7ff76e3cad51 - tokio::runtime::blocking::pool::{{impl}}::spawn_thread::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\blocking\pool.rs:209 43: 0x7ff76e3cad51 - std::sys_common::backtrace::__rust_begin_short_backtrace at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\sys_common\backtrace.rs:130 44: 0x7ff76e3b55f8 - std::thread::{{impl}}::spawn_unchecked::{{closure}}::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\mod.rs:475 45: 0x7ff76e3b55f8 - std::panic::{{impl}}::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:318 46: 0x7ff76e3b55f8 - std::panicking::try::do_call,()> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:303 47: 0x7ff76e3ef1b2 - panic_unwind::__rust_maybe_catch_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:86 48: 0x7ff76e3c6bc8 - std::panicking::try at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panicking.rs:281 49: 0x7ff76e3c6bc8 - std::panic::catch_unwind at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\panic.rs:394 50: 0x7ff76e3c6bc8 - std::thread::{{impl}}::spawn_unchecked::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\mod.rs:474 51: 0x7ff76e3c6bc8 - core::ops::function::FnOnce::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libcore\ops\function.rs:232 52: 0x7ff76e3e1517 - alloc::boxed::{{impl}}::call_once<(),FnOnce<()>> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\liballoc\boxed.rs:1017 53: 0x7ff76e3ed96c - alloc::boxed::{{impl}}::call_once at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\liballoc\boxed.rs:1017 54: 0x7ff76e3ed96c - std::sys_common::thread::start_thread at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\thread.rs:13 55: 0x7ff76e3ed96c - std::sys::windows::thread::{{impl}}::new::thread_start at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys\windows\thread.rs:51 56: 0x7fff3f119784 - BaseThreadInitThunk 57: 0x7fff402596a1 - RtlUserThreadStart stack backtrace: thread 'tokio-runtime-worker' panicked at ' GL error: 0x502 (INVALID_OPERATION) ', %UserProfile%\.cargo\git\checkouts\pathfinder-f0bd20e7aa700f92\0f35009\gl\src\lib.rs0:: 1485 : 13 0x7ff76e3e853f - backtrace::backtrace::trace_unsynchronized at C:\Users\VssAdministrator\.cargo\registry\src\github.com-1ecc6299db9ec823\backtrace-0.3.44\src\backtrace\mod.rs:66 1: 0x7ff76e3e853f - std::sys_common::backtrace::_print_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:78 2: 0x7ff76e3e853f - std::sys_common::backtrace::_print::{{impl}}::fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:59 3: 0x7ff76e3fd8eb - core::fmt::write at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libcore\fmt\mod.rs:1063 4: 0x7ff76e3e596c - std::io::Write::write_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\io\mod.rs:1426 5: 0x7ff76e3eb65c - std::sys_common::backtrace::_print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:62 6: 0x7ff76e3eb65c - std::sys_common::backtrace::print at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\sys_common\backtrace.rs:49 7: 0x7ff76e3eb65c - std::panicking::default_hook::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:204 8: 0x7ff76e3eb2af - std::panicking::default_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:224 9: 0x7ff76e3ebe37 - std::panicking::rust_panic_with_hook at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:470 10: 0x7ff76e3eb9bf - std::panicking::begin_panic_handler at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:378 11: 0x7ff76e3eb92c - std::panicking::begin_panic_fmt at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:332 12: 0x7ff76e2c6eec - turtle::renderer_client::{{impl}}::recv::{{closure}}::{{closure}} at M:\Projects\Rust\turtle\src\renderer_client.rs:154 13: 0x7ff76e2a62cc - std::future::{{impl}}::poll at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\future.rs:44 14: 0x7ff76e2a62cc - std::future::poll_with_tls_context> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\future.rs:102 15: 0x7ff76e2a49fe - std::future::{{impl}}::poll at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\future.rs:44 16: 0x7ff76e2a49fe - std::future::poll_with_tls_context> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\future.rs:102 17: 0x7ff76e2b3bbc - turtle::async_turtle::{{impl}}::right::{{closure}} at M:\Projects\Rust\turtle\src\async_turtle.rs:85 18: 0x7ff76e2b3bbc - std::future::{{impl}}::poll at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\future.rs:44 19: 0x7ff76e2e6f5a - tokio::runtime::enter::{{impl}}::block_on::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\enter.rs:163 20: 0x7ff76e2e6f5a - tokio::coop::with_budget::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\coop.rs:127 21: 0x7ff76e2e6f5a - std::thread::local::LocalKey>::try_with at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\local.rs:262 22: 0x7ff76e2e6f5a - std::thread::local::LocalKey>::with at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\thread\local.rs:239 23: 0x7ff76e2e6f5a - tokio::coop::with_budget at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\coop.rs:120 24: 0x7ff76e2e6f5a - tokio::coop::budget at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\coop.rs:96 25: 0x7ff76e2e6f5a - tokio::runtime::enter::Enter::block_on> at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\enter.rs:163 26: 0x7ff76e287040 - tokio::runtime::handle::{{impl}}::block_on::{{closure}} at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\handle.rs:265 27: 0x7ff76e287040 - tokio::runtime::context::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\context.rs:72 28: 0x7ff76e242d18 - tokio::runtime::handle::Handle::enter at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\handle.rs:76 29: 0x7ff76e242d18 - tokio::runtime::handle::Handle::block_on at %UserProfile%\.cargo\registry\src\github.com-1ecc6299db9ec823\tokio-0.2.21\src\runtime\handle.rs:263 30: 0x7ff76e242d18 - turtle::sync_runtime::block_on at M:\Projects\Rust\turtle\src\sync_runtime.rs:17 31: 0x7ff76e242d18 - turtle::turtle::Turtle::right at M:\Projects\Rust\turtle\src\turtle.rs:151 32: 0x7ff76e21f67b - heart::curve at M:\Projects\Rust\turtle\examples\heart.rs:34 33: 0x7ff76e21f67b - heart::main at M:\Projects\Rust\turtle\examples\heart.rs:20 34: 0x7ff76e218156 - std::rt::lang_start::{{closure}}<()> at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\src\libstd\rt.rs:67 35: 0x7ff76e3eb857 - std::rt::lang_start_internal::{{closure}} at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\rt.rs:52 36: 0x7ff76e3eb857 - std::panicking::try::do_call at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:303 37: 0x7ff76e3ef1b2 - panic_unwind::__rust_maybe_catch_panic at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libpanic_unwind\lib.rs:86 38: 0x7ff76e3ec188 - std::panicking::try at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panicking.rs:281 39: 0x7ff76e3ec188 - std::panic::catch_unwind at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\panic.rs:394 40: 0x7ff76e3ec188 - std::rt::lang_start_internal at /rustc/4fb7144ed159f94491249e86d5bbd033b5d60550\/src\libstd\rt.rs:51 41: 0x7ff76e2201c7 - main 42: 0x7ff76e4037c4 - invoke_main at d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78 43: 0x7ff76e4037c4 - __scrt_common_main_seh at d:\agent\_work\4\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288 44: 0x7fff3f119784 - BaseThreadInitThunk 45: 0x7fff402596a1 - RtlUserThreadStart stack backtrace: error: process didn't exit successfully: `target\debug\examples\heart.exe` (exit code: 101) ```