stylo: Gecko_GetFontMetrics touches xpconnect off the main thread

RESOLVED DUPLICATE of bug 1356103

Status

()

Core
CSS Parsing and Computation
P1
normal
RESOLVED DUPLICATE of bug 1356103
11 months ago
10 months ago

People

(Reporter: froydnj, Assigned: manishearth)

Tracking

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox55 affected)

Details

(Reporter)

Description

11 months ago
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
(Reporter)

Updated

11 months ago
Blocks: 1318187
(Reporter)

Comment 1

11 months ago
This *may* have been addressed by bug 1316683.  Will have to re-test.
(Assignee)

Updated

11 months ago
Depends on: 1356103

Updated

11 months ago
Assignee: nobody → manishearth
Priority: -- → P1
Summary: stylo: parallel traversal touches xpconnect off the main thread → stylo: Gecko_GetFontMetrics touches xpconnect off the main thread
(Assignee)

Comment 2

10 months ago
Being fixed in bug 1356103
Status: NEW → RESOLVED
Last Resolved: 10 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1356103
You need to log in before you can comment on or make changes to this bug.