Bug 252264 - [GTK] Criticals from webkitOptionMenuSetEvent when opening any combo box
Summary: [GTK] Criticals from webkitOptionMenuSetEvent when opening any combo box
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Michael Catanzaro
URL:
Keywords:
Depends on:
Blocks: GTK4
  Show dependency treegraph
 
Reported: 2023-02-14 13:36 PST by Michael Catanzaro
Modified: 2023-02-16 09:17 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2023-02-14 13:36:24 PST
Set G_DEBUG=fatal-criticals in your environment, visit https://dor.mo.gov/forms/?formName=&category=&year=99 and try to select any of the combo boxes. Crash:

(gdb) bt
#0  _g_log_abort (breakpoint=1) at ../../../../Projects/glib/glib/gmessages.c:558
#1  0x00007f06c3292739 in g_logv (log_domain=0x7f06b9b77f0f "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x7f06c331160f "%s: assertion '%s' failed", args=0x7ffd83346a18)
    at ../../../../Projects/glib/glib/gmessages.c:1418
#2  0x00007f06c3292830 in g_log (log_domain=0x7f06b9b77f0f "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, 
    format=0x7f06c331160f "%s: assertion '%s' failed") at ../../../../Projects/glib/glib/gmessages.c:1460
#3  0x00007f06c329588d in g_return_if_fail_warning (log_domain=0x7f06b9b77f0f "GLib-GObject", 
    pretty_function=0x7f06b9b79800 <__func__.33> "g_object_ref_sink", 
    expression=0x7f06b9b78386 "G_IS_OBJECT (object)") at ../../../../Projects/glib/glib/gmessages.c:2930
#4  0x00007f06b9b49e73 in g_object_ref_sink (_object=0x1d3a480) at ../../../../Projects/glib/gobject/gobject.c:3498
#5  0x00007f06bfaa2d7d in WTF::refGPtr<_GdkEvent> (ptr=0x1d3a480) at WTF/Headers/wtf/glib/GRefPtr.h:264
#6  WTF::GRefPtr<_GdkEvent>::operator= (this=0x1d2c138, optr=0x1d3a480) at WTF/Headers/wtf/glib/GRefPtr.h:159
#7  webkitOptionMenuSetEvent (menu=<optimized out>, event=0x1d3a480)
    at /home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/API/glib/WebKitOptionMenu.cpp:102
#8  0x00007f06bfad247f in WebKit::WebKitPopupMenu::showPopupMenu (this=0x7f06a20940c0, rect=..., 
    direction=WebCore::TextDirection::LTR, 
    pageScaleFactor=<error reading variable: That operation is not available on integers of more than 8 bytes.>, 
    items=..., platformData=..., selectedIndex=0)
    at /home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/API/gtk/WebKitPopupMenu.cpp:44
#9  0x00007f06bfa00f18 in WebKit::WebPageProxy::showPopupMenu (this=0x7f0632020c00, rect=..., textDirection=0, 
    items=..., selectedIndex=0, data=...)
    at /home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebPageProxy.cpp:7298
#10 0x00007f06bf6dc799 in _ZZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES2_FvRKN7WebCore7IntRectEmRKN3WTF6VectorINS1_12WebPopupItemELm0ENS7_15CrashOnOverflowELm16ENS7_10FastMallocEEEiRKNS1_21PlatformPopupMenuDataEESt5tupleIJS4_mSC_iSF_EEEEvPT_MT0_T1_OT2_ENKUlDpOT_E_clIJS4_mSC_iSF_EEEDaSU_ (args=..., args=..., args=..., args=..., args=..., 
    this=<optimized out>) at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/HandleMessage.h:136
#11 _ZSt13__invoke_implIvZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvRKN7WebCore7IntRectEmRKN3WTF6VectorINS2_12WebPopupItemELm0ENS8_15CrashOnOverflowELm16ENS8_10FastMallocEEEiRKNS2_21PlatformPopupMenuDataEESt5tupleIJS5_mSD_iSG_EEEEvPT_MT0_T1_OT2_EUlDpOT_E_JS5_mSD_iSG_EESM_St14__invoke_otherOSO_DpOT1_ (__args=..., __args=..., __args=..., 
    __args=..., __args=..., __f=...)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:61
#12 _ZSt8__invokeIZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvRKN7WebCore7IntRectEmRKN3WTF6VectorINS2_12WebPopupItemELm0ENS8_15CrashOnOverflowELm16ENS8_10FastMallocEEEiRKNS2_21PlatformPopupMenuDataEESt5tupleIJS5_mSD_iSG_EEEEvPT_MT0_T1_OT2_EUlDpOT_E_JS5_mSD_iSG_EENSt15__invoke_resultISM_JDpT0_EE4typeEOSM_DpOSY_ (__args=..., __args=..., 
    __args=..., __args=..., __args=..., __fn=...)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/invoke.h:96
#13 _ZSt12__apply_implIZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvRKN7WebCore7IntRectEmRKN3WTF6VectorINS2_12WebPopupItemELm0ENS8_15CrashOnOverflowELm16ENS8_10FastMallocEEEiRKNS2_21PlatformPopupMenuDataEESt5tupleIJS5_mSD_iSG_EEEEvPT_MT0_T1_OT2_EUlDpOT_E_SL_JLm0ELm1ELm2ELm3ELm4EEEDcOSM_OSO_St16integer_sequenceImJXspT1_EEE (__t=..., __f=...)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/tuple:1852
#14 _ZSt5applyIZN3IPC18callMemberFunctionIN6WebKit12WebPageProxyES3_FvRKN7WebCore7IntRectEmRKN3WTF6VectorINS2_12WebPopupItemELm0ENS8_15CrashOnOverflowELm16ENS8_10FastMallocEEEiRKNS2_21PlatformPopupMenuDataEESt5tupleIJS5_mSD_iSG_EEEEvPT_MT0_T1_OT2_EUlDpOT_E_SL_EDcOSM_OSO_ (__t=..., __f=...)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/tuple:1863
#15 IPC::callMemberFunction<WebKit::WebPageProxy, WebKit::WebPageProxy, void (WebCore::IntRect const&, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, int, WebKit::PlatformPopupMenuData const&), std::tuple<WebCore::IntRect, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>, int, WebKit::PlatformPopupMenuData> >(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebCore::IntRect const&, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, int, WebKit::PlatformPopupMenuData const&), std::tuple<WebCore::IntRect, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc>, int, WebKit::PlatformPopupMenuData>&&) (
    object=0x7f0632020c00, function=<optimized out>, tuple=...)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/HandleMessage.h:134
#16 IPC::handleMessage<Messages::WebPageProxy::ShowPopupMenu, WebKit::WebPageProxy, WebKit::WebPageProxy, void (WebCore::IntRect const&, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, int, WebKit::PlatformPopupMenuData const&)>(IPC::Connection&, IPC::Decoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebCore::IntRect const&, unsigned long, WTF::Vector<WebKit::WebPopupItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, int, WebKit::PlatformPopupMenuData const&)) (connection=..., decoder=..., object=0x7f0632020c00, function=<optimized out>) at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/HandleMessage.h:236
#17 WebKit::WebPageProxy::didReceiveMessage (this=0x7f0632020c00, connection=..., decoder=...) at DerivedSources/WebKit/WebPageProxyMessageReceiver.cpp:576
#18 0x00007f06bf94549d in IPC::MessageReceiverMap::dispatchMessage (this=<optimized out>, connection=..., decoder=...) at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129
#19 0x00007f06bfa3f71d in non-virtual thunk to WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () at /home/mcatanzaro/Projects/WebKit/Source/WebKit/UIProcess/WebProcessProxy.cpp:965
#20 0x00007f06bf93e476 in IPC::Connection::dispatchMessage (this=0x7f06a2028680, message=std::unique_ptr<IPC::Decoder> = {...}) at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/Connection.cpp:1245
#21 0x00007f06bf93e9f2 in IPC::Connection::dispatchIncomingMessages (this=0x7f06a2028680) at /home/mcatanzaro/Projects/WebKit/Source/WebKit/Platform/IPC/Connection.cpp:1355
#22 0x00007f06bdcb6efc in WTF::Function<void ()>::operator()() const (this=<optimized out>) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/Function.h:82
#23 WTF::RunLoop::performWork (this=0x7f06a20100e0) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/RunLoop.cpp:147
#24 0x00007f06bdd184a6 in WTF::RunLoop::RunLoop()::$_1::operator()(void*) const (userData=0x1, userData@entry=0x7f06a20100e0, this=<optimized out>) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/glib/RunLoopGLib.cpp:80
#25 WTF::RunLoop::RunLoop()::$_1::__invoke(void*) (userData=0x1, userData@entry=0x7f06a20100e0) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/glib/RunLoopGLib.cpp:79
#26 0x00007f06bdd179da in WTF::RunLoop::$_0::operator() (source=0xa72f80, callback=0x7f06bdd184a0 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7f06a20100e0, this=<optimized out>) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/glib/RunLoopGLib.cpp:53
#27 WTF::RunLoop::$_0::__invoke (source=0xa72f80, callback=0x7f06bdd184a0 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7f06a20100e0) at /home/mcatanzaro/Projects/WebKit/Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#28 0x00007f06c328571b in g_main_dispatch (context=0xa1b9d0) at ../../../../Projects/glib/glib/gmain.c:3460
#29 0x00007f06c328668f in g_main_context_dispatch (context=0xa1b9d0) at ../../../../Projects/glib/glib/gmain.c:4200
#30 0x00007f06c3286882 in g_main_context_iterate (context=0xa1b9d0, block=1, dispatch=1, self=0xde3eb0) at ../../../../Projects/glib/glib/gmain.c:4276
#31 0x00007f06c3286946 in g_main_context_iteration (context=0xa1b9d0, may_block=1) at ../../../../Projects/glib/glib/gmain.c:4343
#32 0x00007f06b991edc2 in g_application_run (application=0xde24c0, argc=0, argv=0x0) at ../../../../Projects/glib/gio/gapplication.c:2573
#33 0x0000000000414316 in main (argc=1, argv=0x7ffd83347818) at /home/mcatanzaro/Projects/WebKit/Tools/MiniBrowser/gtk
Comment 1 Michael Catanzaro 2023-02-14 13:40:17 PST
Probably caused by 256927@main
Comment 2 Michael Catanzaro 2023-02-14 13:42:39 PST
Probably just a missing #include. This file does not #include <WebCore/GRefPtrGtk.h> and therefore the template specialization for GdkEvent is missing so it the GRefPtr treats it as a GObject though it is not.
Comment 3 Michael Catanzaro 2023-02-15 10:08:13 PST
Pull request: https://github.com/WebKit/WebKit/pull/10151
Comment 4 EWS 2023-02-16 09:17:49 PST
Committed 260374@main (587cb602ebdd): <https://commits.webkit.org/260374@main>

Reviewed commits have been landed. Closing PR #10151 and removing active labels.