Closed Bug 1355814 Opened 3 years ago Closed 3 years ago

stylo: Gecko_GetFontMetrics touches xpconnect off the main thread

Categories

(Core :: CSS Parsing and Computation, defect, P1)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1356103
Tracking Status
firefox55 --- affected

People

(Reporter: froydnj, Assigned: manishearth)

References

Details

As seen in https://treeherder.mozilla.org/#/jobs?repo=try&revision=b10fecf7e5767cd076086ef3e35129341f3c1b2c in the opt jobs:

INFO - REFTEST PROCESS-CRASH | file:///home/worker/workspace/build/tests/reftest/tests/layout/reftests/text-overflow/marker-string.html | application crashed [@ nsXPConnect::XPConnect]
INFO - Crash dump filename: /tmp/tmprhEnqg.mozrunner/minidumps/1e0d255d-0e3d-0adb-15b4-2b13fc782e30.dmp
INFO - Operating system: Linux
INFO -                   0.0.0 Linux 3.13.0-112-generic #159-Ubuntu SMP Fri Mar 3 15:26:07 UTC 2017 x86_64
INFO - CPU: amd64
INFO -      family 6 model 62 stepping 4
INFO -      2 CPUs
INFO - 
INFO - GPU: UNKNOWN
INFO - 
INFO - Crash reason:  SIGSEGV
INFO - Crash address: 0x0
INFO - Process uptime: not available
INFO - 
INFO - Thread 19 (crashed)
INFO -  0  libxul.so!nsXPConnect::XPConnect [xpcprivate.h:b10fecf7e576 : 243 + 0x0]
INFO -     rax = 0x000000000061fd00   rdx = 0x00007fcea250dfb7
INFO -     rcx = 0x000000004d00d084   rbx = 0x00007fce970c61f0
INFO -     rsi = 0x00007fce96c59b90   rdi = 0x00007fcea3c8abe0
INFO -     rbp = 0x00007fce941f76e0   rsp = 0x00007fce941f76e0
INFO -      r8 = 0x0000000000000000    r9 = 0x0000000000000000
INFO -     r10 = 0x000000000000007e   r11 = 0x00007fceae462390
INFO -     r12 = 0x0000000000000000   r13 = 0x00007fce941f7790
INFO -     r14 = 0x00007fce941f7860   r15 = 0x00007fce941f7888
INFO -     rip = 0x00007fce9ff6ca68
INFO -     Found by: given as instruction pointer in context
INFO -  1  libxul.so!XPCJSContext::Get [xpcprivate.h:b10fecf7e576 : 404 + 0x5]
INFO -     rbx = 0x00007fce970c61f0   rbp = 0x00007fce941f76f0
INFO -     rsp = 0x00007fce941f76f0   r12 = 0x0000000000000000
INFO -     r13 = 0x00007fce941f7790   r14 = 0x00007fce941f7860
INFO -     r15 = 0x00007fce941f7888   rip = 0x00007fce9ff810c3
INFO -     Found by: call frame info
INFO -  2  libxul.so!xpc::PrivilegedJunkScope [XPCJSContext.cpp:b10fecf7e576 : 539 + 0x5]
INFO -     rbx = 0x00007fce970c61f0   rbp = 0x00007fce941f7700
INFO -     rsp = 0x00007fce941f7700   r12 = 0x0000000000000000
INFO -     r13 = 0x00007fce941f7790   r14 = 0x00007fce941f7860
INFO -     r15 = 0x00007fce941f7888   rip = 0x00007fce9ff880eb
INFO -     Found by: call frame info
INFO -  3  libxul.so!nsILoadContext::GetOriginAttributes [LoadContext.cpp:b10fecf7e576 : 19 + 0x5]
INFO -     rbx = 0x00007fce970c61f0   rbp = 0x00007fce941f7820
INFO -     rsp = 0x00007fce941f7710   r12 = 0x0000000000000000
INFO -     r13 = 0x00007fce941f7790   r14 = 0x00007fce941f7860
INFO -     r15 = 0x00007fce941f7888   rip = 0x00007fcea16b6953
INFO -     Found by: call frame info
INFO -  4  libxul.so!mozilla::net::PredictorLearn [Predictor.cpp:b10fecf7e576 : 2284 + 0x8]
INFO -     rbx = 0x00007fce941f7888   rbp = 0x00007fce941f78e0
INFO -     rsp = 0x00007fce941f7830   r12 = 0x00007fce96c0a8b0
INFO -     r13 = 0x00007fce8417f030   r14 = 0x00007fce941f7860
INFO -     r15 = 0x00007fce941f7868   rip = 0x00007fce9fa69b21
INFO -     Found by: call frame info
INFO -  5  libxul.so!mozilla::dom::FontFaceSet::StartLoad [FontFaceSet.cpp:b10fecf7e576 : 654 + 0x1c]
INFO -     rbx = 0x0000000000000000   rbp = 0x00007fce941f79f0
INFO -     rsp = 0x00007fce941f78f0   r12 = 0x00007fce98f121a0
INFO -     r13 = 0x00007fce941f7960   r14 = 0x00007fce84a142c0
INFO -     r15 = 0x00007fce85e8d338   rip = 0x00007fcea0e7fd38
INFO -     Found by: call frame info
INFO -  6  libxul.so!gfxUserFontEntry::LoadNextSrc [gfxUserFontSet.cpp:b10fecf7e576 : 567 + 0xc]
INFO -     rbx = 0x00007fce9c1690e0   rbp = 0x00007fce941f7b40
INFO -     rsp = 0x00007fce941f7a00   r12 = 0x00007fce85e8d338
INFO -     r13 = 0x00007fce941f7a48   r14 = 0x0000000000000000
INFO -     r15 = 0x00007fce941f7a50   rip = 0x00007fcea02143db
INFO -     Found by: call frame info
INFO -  7  libxul.so!gfxFontGroup::GetFirstValidFont [gfxTextRun.cpp:b10fecf7e576 : 2020 + 0x8]
INFO -     rbx = 0x00007fce98f674f0   rbp = 0x00007fce941f7b90
INFO -     rsp = 0x00007fce941f7b50   r12 = 0x00007fce98f14308
INFO -     r13 = 0x00007fce9c1690e0   r14 = 0x0000000000000000
INFO -     r15 = 0x00007fce8462d801   rip = 0x00007fcea021473e
INFO -     Found by: call frame info
INFO -  8  libxul.so!nsFontMetrics::GetMetrics [nsFontMetrics.cpp:b10fecf7e576 : 169 + 0x6]
INFO -     rbx = 0x00007fce98f5e2c0   rbp = 0x00007fce941f7bc0
INFO -     rsp = 0x00007fce941f7ba0   r12 = 0x0000000000000000
INFO -     r13 = 0x0000000000000000   r14 = 0x00007fce98a982e0
INFO -     r15 = 0x00007fce8462d800   rip = 0x00007fcea00cf867
INFO -     Found by: call frame info
INFO -  9  libxul.so!nsFontMetrics::XHeight [nsFontMetrics.cpp:b10fecf7e576 : 175 + 0x5]
INFO -     rbx = 0x00007fce98f5e2c0   rbp = 0x00007fce941f7be0
INFO -     rsp = 0x00007fce941f7bd0   r12 = 0x00000000000003c0
INFO -     r13 = 0x0000000000000000   r14 = 0x00007fce98a982e0
INFO -     r15 = 0x00007fce8462d800   rip = 0x00007fcea00cf8f8
INFO -     Found by: call frame info
INFO - 10  libxul.so!Gecko_GetFontMetrics [ServoBindings.cpp:b10fecf7e576 : 1676 + 0x8]
INFO -     rbx = 0x00007fce98f5e2c0   rbp = 0x00007fce941f7c50
INFO -     rsp = 0x00007fce941f7bf0   r12 = 0x00000000000003c0
INFO -     r13 = 0x0000000000000000   r14 = 0x00007fce98a982e0
INFO -     r15 = 0x00007fce8462d800   rip = 0x00007fcea0e7e3a1
INFO -     Found by: call frame info
INFO - 11  libxul.so!style::gecko::wrapper::{{impl}}::query [wrapper.rs:b10fecf7e576 : 479 + 0x9]
INFO -     rbx = 0x00007fce941f7c90   rbp = 0x00007fce941f7c70
INFO -     rsp = 0x00007fce941f7c60   r12 = 0x00007fce941f7fa0
INFO -     r13 = 0x00007fcea2a65978   r14 = 0x00007fce941f7d00
INFO -     r15 = 0x00007fce941f8170   rip = 0x00007fcea23cf11b
INFO -     Found by: call frame info
INFO - 12  libxul.so!style::values::specified::length::FontRelativeLength::to_computed_value [length.rs:b10fecf7e576 : 76 + 0x1d]
INFO -     rbx = 0x00000000000003c0   rbp = 0x00007fce941f7cb0
INFO -     rsp = 0x00007fce941f7c80   r12 = 0x00007fce941f7fa0
INFO -     r13 = 0x00007fcea2a65978   r14 = 0x00007fce941f7d00
INFO -     r15 = 0x00007fce941f8170   rip = 0x00007fcea22de2f3
INFO -     Found by: call frame info
INFO - 13  libxul.so!style::properties::longhands::width::cascade_property::{{closure}} [length.rs:b10fecf7e576 : 27 + 0xa]
INFO -     rbx = 0x00007fce848bfa58   rbp = 0x00007fce941f7d00
INFO -     rsp = 0x00007fce941f7cc0   r12 = 0x00007fce941f7fa0
INFO -     r13 = 0x00007fcea2a65978   r14 = 0x00007fce941f7d58
INFO -     r15 = 0x00007fce941f8170   rip = 0x00007fcea230ce2a
INFO -     Found by: call frame info
INFO - 14  libxul.so!style::properties::longhands::width::cascade_property [lib.rs:b10fecf7e576 : 149 + 0x39]
INFO -     rbx = 0x00007fcea3c7a9f0   rbp = 0x00007fce941f7d90
INFO -     rsp = 0x00007fce941f7d10   r12 = 0x00007fce941f7fa0
INFO -     r13 = 0x00007fcea2a65978   r14 = 0x0000000b000c000d
INFO -     r15 = 0x00007fce941f8170   rip = 0x00007fcea22baf40
INFO -     Found by: call frame info
INFO - 15  libxul.so!style::properties::cascade [lib.rs:b10fecf7e576 : 149 + 0x33]
INFO -     rbx = 0x00007fcea3c7a9f0   rbp = 0x00007fce941f81d0
INFO -     rsp = 0x00007fce941f7da0   r12 = 0x00007fce941f7fa0
INFO -     r13 = 0x00007fcea2a65978   r14 = 0x0000000b000c000d
INFO -     r15 = 0x00007fce941f8170   rip = 0x00007fcea23ea3a3
INFO -     Found by: call frame info
INFO - 16  libxul.so!style::matching::PrivateMatchMethods::cascade_primary_or_pseudo<style::gecko::wrapper::GeckoElement> [matching.rs:b10fecf7e576 : 386 + 0x48]
INFO -     rbx = 0x00007fce941f8210   rbp = 0x00007fce941f8470
INFO -     rsp = 0x00007fce941f81e0   r12 = 0x0000000000000000
INFO -     r13 = 0x0000000000000000   r14 = 0x00007fce844c4cc8
INFO -     r15 = 0x00007ffdfa963828   rip = 0x00007fcea23e430e
INFO -     Found by: call frame info
INFO - 17  libxul.so!style::traversal::compute_style<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly> [matching.rs:b10fecf7e576 : 1132 + 0x16]
INFO -     rbx = 0x00007fce941f8610   rbp = 0x00007fce941f8640
INFO -     rsp = 0x00007fce941f8480   r12 = 0x00007fce98f262c8
INFO -     r13 = 0x00007fce941f84e0   r14 = 0x00007fce941f8660
INFO -     r15 = 0x00007fce867e2080   rip = 0x00007fcea23dd1b4
INFO -     Found by: call frame info
INFO - 18  libxul.so!style::gecko::traversal::{{impl}}::process_preorder [traversal.rs:b10fecf7e576 : 580 + 0xc]
INFO -     rbx = 0x00007fce98f262c0   rbp = 0x00007fce941f8740
INFO -     rsp = 0x00007fce941f8650   r12 = 0x00007fce941f8838
INFO -     r13 = 0x00007fce864c53e0   r14 = 0x00007fce98f262c8
INFO -     r15 = 0x00007fce844a98e0   rip = 0x00007fcea23da37f
INFO -     Found by: call frame info
INFO - 19  libxul.so!style::parallel::traverse_nodes<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly> [parallel.rs:b10fecf7e576 : 115 + 0x16]
INFO -     rbx = 0x00007fce98f264c0   rbp = 0x00007fce941f88e0
INFO -     rsp = 0x00007fce941f8750   r12 = 0x00007fce844a9978
INFO -     r13 = 0x00007fce844a98e0   r14 = 0x00007fce864c53e0
INFO -     r15 = 0x0000000000000008   rip = 0x00007fcea21da679
INFO -     Found by: call frame info
INFO - 20  libxul.so!style::parallel::traverse_nodes<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly> [parallel.rs:b10fecf7e576 : 129 + 0x19]
INFO -     rbx = 0x00007fce98f1f078   rbp = 0x00007fce941f8a90
INFO -     rsp = 0x00007fce941f88f0   r12 = 0x00007fce844a9978
INFO -     r13 = 0x00007fce844a98e0   r14 = 0x0000000000000000
INFO -     r15 = 0x0000000000000001   rip = 0x00007fcea21da929
INFO -     Found by: call frame info
INFO - 21  libxul.so!style::parallel::traverse_nodes<style::gecko::wrapper::GeckoElement,style::gecko::traversal::RecalcStyleOnly> [parallel.rs:b10fecf7e576 : 129 + 0x19]
INFO -     rbx = 0x00007fce864d4958   rbp = 0x00007fce941f8c40
INFO -     rsp = 0x00007fce941f8aa0   r12 = 0x00007fce844a9978
INFO -     r13 = 0x00007fce844a98e0   r14 = 0x0000000000000000
INFO -     r15 = 0x0000000000000001   rip = 0x00007fcea21da929
INFO -     Found by: call frame info
INFO - 22  libxul.so!rayon::scope::scope<closure> [parallel.rs:b10fecf7e576 : 75 + 0x2c]
INFO -     rbx = 0x0000000000000001   rbp = 0x00007fce941f8d40
INFO -     rsp = 0x00007fce941f8c50   r12 = 0x00007fce864d4950
INFO -     r13 = 0x0000000000000001   r14 = 0x00007ffdfa963978
INFO -     r15 = 0x00007fce941f8e08   rip = 0x00007fcea21d9b5c
INFO -     Found by: call frame info
INFO - 23  libxul.so!rayon::job::{{impl}}::execute<rayon::latch::LockLatch,closure,()> [parallel.rs:b10fecf7e576 : 74 + 0x25]
INFO -     rbx = 0x00007ffdfa9638a0   rbp = 0x00007fce941f8db0
INFO -     rsp = 0x00007fce941f8d50   r12 = 0x00007fce96c9dfb0
INFO -     r13 = 0x00007fce96c9df80   r14 = 0x00007fce96c9dfa8
INFO -     r15 = 0x00007fce98f03c00   rip = 0x00007fcea21d501b
INFO -     Found by: call frame info
Blocks: 1318187
This *may* have been addressed by bug 1316683.  Will have to re-test.
Depends on: 1356103
Assignee: nobody → manishearth
Priority: -- → P1
Summary: stylo: parallel traversal touches xpconnect off the main thread → stylo: Gecko_GetFontMetrics touches xpconnect off the main thread
Being fixed in bug 1356103
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1356103
You need to log in before you can comment on or make changes to this bug.