Closed Bug 1676543 Opened 4 years ago Closed 4 years ago

Assertion failure: aPresContext->UsesExChUnits(), at src/layout/style/nsFontFaceUtils.cpp:56

Categories

(Core :: CSS Parsing and Computation, defect)

defect

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox82 --- unaffected
firefox83 --- wontfix
firefox84 --- fixed

People

(Reporter: tsmith, Assigned: emilio)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase.html

Fuzzers have been hitting this since 20200911-941862090875

Assertion failure: aPresContext->UsesExChUnits(), at src/layout/style/nsFontFaceUtils.cpp:56

#0 0x7f1b16ac3058 in StyleFontUsage(mozilla::ComputedStyle*, nsPresContext*, gfxUserFontSet const*, gfxUserFontEntry const*, nsTSubstring<char16_t> const&) src/layout/style/nsFontFaceUtils.cpp:56:5
#1 0x7f1b16aac65c in FrameFontUsage src/layout/style/nsFontFaceUtils.cpp:70:7
#2 0x7f1b16aac65c in nsFontFaceUtils::MarkDirtyForFontChange(nsIFrame*, gfxUserFontEntry const*) src/layout/style/nsFontFaceUtils.cpp:161:28
#3 0x7f1b16aa92c6 in nsFontFaceLoader::FontLoadComplete() src/layout/style/nsFontFaceLoader.cpp:299:12
#4 0x7f1b16aa947c in non-virtual thunk to nsFontFaceLoader::FontLoadComplete() src/layout/style/nsFontFaceLoader.cpp
#5 0x7f1b16aa8f65 in nsFontFaceLoader::OnStreamComplete(nsIStreamLoader*, nsISupports*, nsresult, unsigned int, unsigned char const*) src/layout/style/nsFontFaceLoader.cpp:279:19
#6 0x7f1b124a2f22 in mozilla::net::nsStreamLoader::OnStopRequest(nsIRequest*, nsresult) src/netwerk/base/nsStreamLoader.cpp:89:20
#7 0x7f1b12907911 in nsCORSListenerProxy::OnStopRequest(nsIRequest*, nsresult) src/netwerk/protocol/http/nsCORSListenerProxy.cpp:614:27
#8 0x7f1b1286fc38 in mozilla::net::HttpChannelChild::DoOnStopRequest(nsIRequest*, nsresult, nsISupports*) src/netwerk/protocol/http/HttpChannelChild.cpp:1008:15
#9 0x7f1b1286f601 in mozilla::net::HttpChannelChild::OnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&) src/netwerk/protocol/http/HttpChannelChild.cpp:887:5
#10 0x7f1b128ce84d in operator() src/netwerk/protocol/http/HttpChannelChild.cpp:781:15
#11 0x7f1b128ce84d in std::_Function_handler<void (), mozilla::net::HttpChannelChild::ProcessOnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&, nsTArray<mozilla::net::ConsoleReportCollected>&&, bool)::$_9>::_M_invoke(std::_Any_data const&) /builds/worker/fetches/clang/bin/../lib/gcc/x86_64-unknown-linux-gnu/7.4.0/../../../../include/c++/7.4.0/bits/std_function.h:316:2
#12 0x7f1b12a335db in mozilla::net::ChannelEventQueue::FlushQueue() src/netwerk/ipc/ChannelEventQueue.cpp:90:12
#13 0x7f1b12a67f89 in MaybeFlushQueue /builds/worker/workspace/obj-build/dist/include/mozilla/net/ChannelEventQueue.h:330:5
#14 0x7f1b12a67f89 in CompleteResume /builds/worker/workspace/obj-build/dist/include/mozilla/net/ChannelEventQueue.h:309:5
#15 0x7f1b12a67f89 in mozilla::net::ChannelEventQueue::ResumeInternal()::CompleteResumeRunnable::Run() src/netwerk/ipc/ChannelEventQueue.cpp:148:17
#16 0x7f1b122af8d2 in mozilla::SchedulerGroup::Runnable::Run() src/xpcom/threads/SchedulerGroup.cpp:146:20
#17 0x7f1b122b58ef in mozilla::RunnableTask::Run() src/xpcom/threads/TaskController.cpp:450:16
#18 0x7f1b122b3f5a in mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:720:26
#19 0x7f1b122b3004 in mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) src/xpcom/threads/TaskController.cpp:579:15
#20 0x7f1b122b31b7 in mozilla::TaskController::ProcessPendingMTTask(bool) src/xpcom/threads/TaskController.cpp:373:36
#21 0x7f1b122b9146 in operator() src/xpcom/threads/TaskController.cpp:120:37
#22 0x7f1b122b9146 in mozilla::detail::RunnableFunction<mozilla::TaskController::InitializeInternal()::$_3>::Run() /builds/worker/workspace/obj-build/dist/include/nsThreadUtils.h:577:5
#23 0x7f1b122ca6c7 in nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1197:14
#24 0x7f1b122d040a in NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:513:10
#25 0x7f1b12bbbb66 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:87:21
#26 0x7f1b12b2da53 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#27 0x7f1b12b2d96d in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#28 0x7f1b12b2d96d in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#29 0x7f1b16829348 in nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:137:27
#30 0x7f1b18030a83 in XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:913:20
#31 0x7f1b12bbc929 in mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:237:9
#32 0x7f1b12b2da53 in MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:334:10
#33 0x7f1b12b2d96d in RunHandler src/ipc/chromium/src/base/message_loop.cc:327:3
#34 0x7f1b12b2d96d in MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:309:3
#35 0x7f1b18030668 in XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:744:34
#36 0x563424beba27 in content_process_main src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#37 0x563424beba27 in main src/browser/app/nsBrowserApp.cpp:304:18
Flags: in-testsuite?
Attached file test.woff2

A Pernosco session is available here: https://pernos.co/debug/78CFfRJC3FGOTYsuDzcCbw/index.html

Emilio, could this be related to your recent changes?

Flags: needinfo?(emilio)

We might clear this flag in PostRebuildAllStyleData before actually
flushing style, so if the timing is wrong you can hit this assertion.

This doesn't impact correctness in any way that I can see.

Assignee: nobody → emilio
Status: NEW → ASSIGNED

The build doesn't have my changes, but it's an invalid assert anyways so worth fixing :)

Assignee: emilio → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(emilio)
Assignee: nobody → emilio
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5cfe11c0659a
Remove some invalid assertions. r=heycam
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: