{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/17100","repository_url":"https://api.github.com/repos/servo/servo","labels_url":"https://api.github.com/repos/servo/servo/issues/17100/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/17100/comments","events_url":"https://api.github.com/repos/servo/servo/issues/17100/events","html_url":"https://github.com/servo/servo/issues/17100","id":232338251,"number":17100,"title":"Intermittent panic: \"already borrowed: BorrowMutError\" during jpeg decoding with rayon","user":{"login":"mbrubeck","id":5920,"avatar_url":"https://avatars2.githubusercontent.com/u/5920?v=3","gravatar_id":"","url":"https://api.github.com/users/mbrubeck","html_url":"https://github.com/mbrubeck","followers_url":"https://api.github.com/users/mbrubeck/followers","following_url":"https://api.github.com/users/mbrubeck/following{/other_user}","gists_url":"https://api.github.com/users/mbrubeck/gists{/gist_id}","starred_url":"https://api.github.com/users/mbrubeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbrubeck/subscriptions","organizations_url":"https://api.github.com/users/mbrubeck/orgs","repos_url":"https://api.github.com/users/mbrubeck/repos","events_url":"https://api.github.com/users/mbrubeck/events{/privacy}","received_events_url":"https://api.github.com/users/mbrubeck/received_events","type":"User","site_admin":false},"labels":[{"id":15998712,"url":"https://api.github.com/repos/servo/servo/labels/A-content/images","name":"A-content/images","color":"d7e102","default":false},{"id":15997558,"url":"https://api.github.com/repos/servo/servo/labels/A-layout/uncategorized","name":"A-layout/uncategorized","color":"d7e102","default":false},{"id":118188357,"url":"https://api.github.com/repos/servo/servo/labels/I-intermittent","name":"I-intermittent","color":"e11d21","default":false},{"id":235764733,"url":"https://api.github.com/repos/servo/servo/labels/I-panic","name":"I-panic","color":"e10c02","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-05-30T18:18:27Z","updated_at":"2017-05-30T18:34:53Z","closed_at":null,"body":"I saw this panic just once, while testing parallel layout on the `myspace` page in the Talos TP5N data set, in a release build with a smaller parallel chunk size (i.e., increased parallelism). It might be a race condition that's made more likely by higher thread count or higher system load.\r\n\r\nFull stack trace:\r\n<details>\r\n\r\n```\r\nalready borrowed: BorrowMutError (thread <unnamed>, at /checkout/src/libcore/result.rs:859)\r\nstack backtrace:\r\n   0:     0x563a75da605c - backtrace::backtrace::trace::h7bc3cec00fabb61e\r\n   1:     0x563a75da61a2 - backtrace::capture::Backtrace::new::h23089c033eded8f0\r\n   2:     0x563a74375385 - servo::main::{{closure}}::heceaa3859e884fa2\r\n   3:     0x563a762cc2ea - std::panicking::rust_panic_with_hook\r\n                        at /checkout/src/libstd/panicking.rs:550\r\n   4:     0x563a762cc134 - std::panicking::begin_panic<collections::string::String>\r\n                        at /checkout/src/libstd/panicking.rs:511\r\n   5:     0x563a762cc0b9 - std::panicking::begin_panic_fmt\r\n                        at /checkout/src/libstd/panicking.rs:495\r\n   6:     0x563a762cc047 - std::panicking::rust_begin_panic\r\n                        at /checkout/src/libstd/panicking.rs:471\r\n   7:     0x563a762f7fed - core::panicking::panic_fmt\r\n                        at /checkout/src/libcore/panicking.rs:69\r\n   8:     0x563a745d1d20 - core::result::unwrap_failed::h7141d40b7cc1ee6e\r\n   9:     0x563a745b69f4 - std::panicking::try::do_call::h5416008dadd5fdbd\r\n  10:     0x563a762d337a - panic_unwind::__rust_maybe_catch_panic\r\n                        at /checkout/src/libpanic_unwind/lib.rs:98\r\n  11:     0x563a745fadfe - <rayon_core::job::HeapJob<BODY> as rayon_core::job::Job>::execute::h851b6e7c240beb6d\r\n  12:     0x563a760dd919 - rayon_core::registry::WorkerThread::execute::h4b9ef25fa96525f0\r\n  13:     0x563a760cafe6 - rayon_core::registry::in_worker::h73ce52b651decb7a\r\n  14:     0x563a760d11f0 - rayon::iter::internal::bridge_producer_consumer::helper::h40b3f80910935f6f\r\n  15:     0x563a760cce8c - std::panicking::try::do_call::hf75bfc1be0e15186\r\n  16:     0x563a762d337a - panic_unwind::__rust_maybe_catch_panic\r\n                        at /checkout/src/libpanic_unwind/lib.rs:98\r\n  17:     0x563a760d1fca - <rayon_core::job::StackJob<L, F, R> as rayon_core::job::Job>::execute::hadc1bfb4ad27a6de\r\n  18:     0x563a760dd919 - rayon_core::registry::WorkerThread::execute::h4b9ef25fa96525f0\r\n  19:     0x563a760cafe6 - rayon_core::registry::in_worker::h73ce52b651decb7a\r\n  20:     0x563a760d11f0 - rayon::iter::internal::bridge_producer_consumer::helper::h40b3f80910935f6f\r\n  21:     0x563a760d2973 - jpeg_decoder::decoder::compute_image::hf15eccc942bad0ae\r\n  22:     0x563a7606ae18 - <jpeg_decoder::decoder::Decoder<R>>::decode_internal::h2f619a9b0dbe4447\r\n  23:     0x563a760a530e - image::dynimage::load::h61df26191ec73a70\r\n  24:     0x563a760bbb6f - image::dynimage::load_from_memory::hed1079ca9b4fdf78\r\n  25:     0x563a7602f1d8 - net_traits::image::base::load_from_memory::h7e1af03cf48972d0\r\n  26:     0x563a7596cbd9 - <net::image_cache::ImageCacheImpl as net_traits::image_cache::ImageCache>::find_image_or_metadata::h615e00cf4a5007b3\r\n  27:     0x563a75824d4a - layout::context::LayoutContext::get_or_request_image_or_meta::hddf273a5d3b6f61f\r\n  28:     0x563a745f2b9c - layout::fragment::ImageFragmentInfo::new::hbc7da74e6ea76ee6\r\n  29:     0x563a74602d8c - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode>>::build_fragment_for_block::hbe42c749b153ad50\r\n  30:     0x563a746028c4 - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode>>::build_flow_for_block::hce893fd678a891f1\r\n  31:     0x563a745a4551 - <layout::construct::FlowConstructor<'a, ConcreteThreadSafeLayoutNode> as layout::traversal::PostorderNodeMutTraversal<ConcreteThreadSafeLayoutNode>>::process::hc03559d2e66ac9ef\r\n  32:     0x563a745e19d2 - style::traversal::DomTraversal::handle_postorder_traversal::h34f5ea701361d594\r\n  33:     0x563a745b688c - std::panicking::try::do_call::h5416008dadd5fdbd\r\n  34:     0x563a762d337a - panic_unwind::__rust_maybe_catch_panic\r\n                        at /checkout/src/libpanic_unwind/lib.rs:98\r\n  35:     0x563a745fadfe - <rayon_core::job::HeapJob<BODY> as rayon_core::job::Job>::execute::h851b6e7c240beb6d\r\n  36:     0x563a760dd811 - rayon_core::registry::WorkerThread::wait_until::hb8bb0271392b3c70\r\n  37:     0x563a760d9b03 - std::sys_common::backtrace::__rust_begin_short_backtrace::hc42ae88fee5e8b73\r\n  38:     0x563a760da14b - std::panicking::try::do_call::h0ae761b9e3a0cc1e\r\n  39:     0x563a762d337a - panic_unwind::__rust_maybe_catch_panic\r\n                        at /checkout/src/libpanic_unwind/lib.rs:98\r\n  40:     0x563a760daa87 - <F as alloc::boxed::FnBox<A>>::call_box::h91b4e629ac890bb2\r\n  41:     0x563a762cae85 - alloc::boxed::{{impl}}::call_once<(),()>\r\n                        at /checkout/src/liballoc/boxed.rs:658\r\n                         - std::sys_common::thread::start_thread\r\n                        at /checkout/src/libstd/sys_common/thread.rs:21\r\n                         - std::sys::imp::thread::{{impl}}::new::thread_start\r\n                        at /checkout/src/libstd/sys/unix/thread.rs:84\r\n  42:     0x7f070c2cc493 - start_thread\r\n  43:     0x7f070bdf893e - __clone\r\n  44:                0x0 - <unknown>\r\n```\r\n\r\n</details>"},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/304968476","html_url":"https://github.com/servo/servo/issues/17100#issuecomment-304968476","issue_url":"https://api.github.com/repos/servo/servo/issues/17100","id":304968476,"user":{"login":"mbrubeck","id":5920,"avatar_url":"https://avatars2.githubusercontent.com/u/5920?v=3","gravatar_id":"","url":"https://api.github.com/users/mbrubeck","html_url":"https://github.com/mbrubeck","followers_url":"https://api.github.com/users/mbrubeck/followers","following_url":"https://api.github.com/users/mbrubeck/following{/other_user}","gists_url":"https://api.github.com/users/mbrubeck/gists{/gist_id}","starred_url":"https://api.github.com/users/mbrubeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbrubeck/subscriptions","organizations_url":"https://api.github.com/users/mbrubeck/orgs","repos_url":"https://api.github.com/users/mbrubeck/repos","events_url":"https://api.github.com/users/mbrubeck/events{/privacy}","received_events_url":"https://api.github.com/users/mbrubeck/received_events","type":"User","site_admin":false},"created_at":"2017-05-30T18:34:53Z","updated_at":"2017-05-30T18:34:53Z","body":"The build I was testing did not include #17025, so it's possible this has the same root cause as might have the same cause as #16982."}}
{"actor":{"display_login":"mbrubeck"}}