Closed Bug 1627296 Opened 1 year ago Closed 1 year ago

`ASSERTION: ENSURE_PARENT_PROCESS` in prefs called from gfxDWriteFonts.cpp

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox-esr68 --- wontfix
firefox76 --- wontfix
firefox77 --- wontfix
firefox78 --- fixed

People

(Reporter: mayhemer, Assigned: jfkthame)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

Win64 debug build. Seen this quite often when running e.g. mochitest.

 1:43.55 GECKO(17864) [Child 2704, Main Thread] ###!!! ASSERTION: ENSURE_PARENT_PROCESS: called SetBool on font.internaluseonly.changed in a non-parent process: 'Error', file c:/Mozilla/src/mozilla-central3/modules/libpref/Preferences.cpp, line 4762
 1:43.55 GECKO(17864) #01: ForceFontUpdate (c:\Mozilla\src\mozilla-central3\gfx\thebes\gfxDWriteFonts.cpp:107)
 1:43.55 GECKO(17864) #02: gfxDWriteFont::SystemTextQualityChanged (c:\Mozilla\src\mozilla-central3\gfx\thebes\gfxDWriteFonts.cpp:121)
 1:43.55 GECKO(17864) #03: std::_Invoker_functor::_Call<void (__cdecl*& __ptr64)(void)> (C:\_\obj\mozilla-central3\_obj-browser-debug\dist\bin\xul.dll + 0x2c69765)
 1:43.55 GECKO(17864) #04: std::invoke<void (__cdecl*& __ptr64)(void)> (C:\_\obj\mozilla-central3\_obj-browser-debug\dist\bin\xul.dll + 0x2c6972b)
 1:43.55 GECKO(17864) #05: std::_Invoker_ret<void,1>::_Call<void (__cdecl*& __ptr64)(void)> (C:\_\obj\mozilla-central3\_obj-browser-debug\dist\bin\xul.dll + 0x2c696fb)
 1:43.55 GECKO(17864) #06: std::_Func_impl_no_alloc<void (__cdecl*)(void),void>::_Do_call (C:\_\obj\mozilla-central3\_obj-browser-debug\dist\bin\xul.dll + 0x2c6958c)
 1:43.55 GECKO(17864) #07: std::_Func_class<void>::operator() (C:\_\obj\mozilla-central3\_obj-browser-debug\dist\bin\xul.dll + 0x68035)
 1:43.55 GECKO(17864) #08: mozilla::gfx::gfxVars::VarImpl<int,&mozilla::gfx::gfxVars::GetSystemTextQualityDefault>::SetValue (c:\Mozilla\src\mozilla-central3\gfx\config\gfxVars.h:124)
 1:43.56 GECKO(17864) #09: mozilla::gfx::gfxVars::ApplyUpdate (c:\Mozilla\src\mozilla-central3\gfx\config\gfxVars.cpp:83)
 1:43.56 GECKO(17864) #10: mozilla::dom::ContentChild::RecvVarUpdate (c:\Mozilla\src\mozilla-central3\dom\ipc\ContentChild.cpp:2288)
 1:43.56 GECKO(17864) #11: mozilla::dom::PContentChild::OnMessageReceived (c:\_\obj\mozilla-central3\_obj-browser-debug\ipc\ipdl\PContentChild.cpp:9653)
 1:43.56 GECKO(17864) #12: mozilla::dom::ContentChild::OnMessageReceived (c:\Mozilla\src\mozilla-central3\dom\ipc\ContentChild.cpp:3715)
 1:43.56 GECKO(17864) #13: mozilla::ipc::MessageChannel::DispatchAsyncMessage (c:\Mozilla\src\mozilla-central3\ipc\glue\MessageChannel.cpp:2187)
 1:43.56 GECKO(17864) #14: mozilla::ipc::MessageChannel::DispatchMessage (c:\Mozilla\src\mozilla-central3\ipc\glue\MessageChannel.cpp:2108)
 1:43.56 GECKO(17864) #15: mozilla::ipc::MessageChannel::RunMessage (c:\Mozilla\src\mozilla-central3\ipc\glue\MessageChannel.cpp:1960)
 1:43.56 GECKO(17864) #16: mozilla::ipc::MessageChannel::MessageTask::Run (c:\Mozilla\src\mozilla-central3\ipc\glue\MessageChannel.cpp:1991)
 1:43.56 GECKO(17864) #17: nsThread::ProcessNextEvent (c:\Mozilla\src\mozilla-central3\xpcom\threads\nsThread.cpp:1220)
 1:43.56 GECKO(17864) #18: NS_ProcessNextEvent (c:\Mozilla\src\mozilla-central3\xpcom\threads\nsThreadUtils.cpp:481)
 1:43.56 GECKO(17864) #19: mozilla::ipc::MessagePump::Run (c:\Mozilla\src\mozilla-central3\ipc\glue\MessagePump.cpp:87)
 1:43.56 GECKO(17864) #20: mozilla::ipc::MessagePumpForChildProcess::Run (c:\Mozilla\src\mozilla-central3\ipc\glue\MessagePump.cpp:271)
 1:43.56 GECKO(17864) #21: MessageLoop::RunInternal (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:315)
 1:43.56 GECKO(17864) #22: MessageLoop::RunHandler (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:309)
 1:43.56 GECKO(17864) #23: MessageLoop::Run (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:291)
 1:43.56 GECKO(17864) #24: nsBaseAppShell::Run (c:\Mozilla\src\mozilla-central3\widget\nsBaseAppShell.cpp:139)
 1:43.56 GECKO(17864) #25: nsAppShell::Run (c:\Mozilla\src\mozilla-central3\widget\windows\nsAppShell.cpp:406)
 1:43.56 GECKO(17864) #26: XRE_RunAppShell (c:\Mozilla\src\mozilla-central3\toolkit\xre\nsEmbedFunctions.cpp:909)
 1:43.56 GECKO(17864) #27: mozilla::ipc::MessagePumpForChildProcess::Run (c:\Mozilla\src\mozilla-central3\ipc\glue\MessagePump.cpp:237)
 1:43.56 GECKO(17864) #28: MessageLoop::RunInternal (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:315)
 1:43.57 GECKO(17864) #29: MessageLoop::RunHandler (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:309)
 1:43.57 GECKO(17864) #30: MessageLoop::Run (c:\Mozilla\src\mozilla-central3\ipc\chromium\src\base\message_loop.cc:291)
 1:43.57 GECKO(17864) #31: XRE_InitChildProcess (c:\Mozilla\src\mozilla-central3\toolkit\xre\nsEmbedFunctions.cpp:744)
 1:43.57 GECKO(17864) #32: mozilla::BootstrapImpl::XRE_InitChildProcess (c:\Mozilla\src\mozilla-central3\toolkit\xre\Bootstrap.cpp:67)
 1:43.57 GECKO(17864) #33: content_process_main (c:\Mozilla\src\mozilla-central3\ipc\contentproc\plugin-container.cpp:56)
 1:43.57 GECKO(17864) #34: NS_internal_main (c:\Mozilla\src\mozilla-central3\browser\app\nsBrowserApp.cpp:303)
 1:43.57 GECKO(17864) #35: wmain (c:\Mozilla\src\mozilla-central3\toolkit\xre\nsWindowsWMain.cpp:131)
 1:43.57 GECKO(17864) #36: __scrt_common_main_seh (d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288)
 1:43.57 GECKO(17864) #37: BaseThreadInitThunk (C:\WINDOWS\System32\KERNEL32.DLL + 0x17bd4)
 1:43.57 GECKO(17864) #38: RtlUserThreadStart (C:\WINDOWS\SYSTEM32\ntdll.dll + 0x6ced1)
Flags: needinfo?(bas)
Priority: -- → P3

Because this bug's Severity has not been changed from the default since it was filed, and it's Priority is P3 (Backlog,) indicating it has been triaged, the bug's Severity is being updated to S3 (normal.)

Severity: normal → S3

AFAICS the ForceFontUpdate() function that is triggering this problem can just be removed; the call to gfxPlatform::ForceGlobalReflow() in SystemTextQualityChanged() should be sufficient.

Assignee: nobody → jfkthame
Status: NEW → ASSIGNED
Pushed by jkew@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/512250f1fb3c
Remove the ForceFontUpdate hack from gfxDWriteFonts, the gfxPlatform calls in SystemTextQualityChanged should be sufficient to flush everything. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78
You need to log in before you can comment on or make changes to this bug.