Bug 255913

Summary: [GTK] webkit in headless mode crash on gtk_widget_destroy or g_object_unref
Product: WebKit Reporter: Or Shalom Dvori <dvoreader>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bugs-noreply
Priority: P3 Keywords: Gtk
Version: Other   
Hardware: PC   
OS: Linux   

Description Or Shalom Dvori 2023-04-25 01:23:44 PDT
Thread 1 "wkgtkprinter" received signal SIGSEGV, Segmentation fault.
webkitWebViewBaseMakeGLContextCurrent () at ./Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:2670
2670	./Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp: No such file or directory.
(gdb) f 1
#1  0x00007ffff4a52d1b in WebKit::WaylandCompositor::Surface::setWebPage () at ./Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp:184
Download failed: Invalid argument.  Continuing without source file ./build-soup2/./Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp.
184	./Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp: No such file or directory.
(gdb) f 2
#2  0x00007ffff4a53c80 in WebKit::WaylandCompositor::unregisterWebPage () at ./Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp:597
597	in ./Source/WebKit/UIProcess/gtk/WaylandCompositor.cpp
(gdb) f 3
#3  0x00007ffff4a49318 in WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland ()
    at ./Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:246
Download failed: Invalid argument.  Continuing without source file ./build-soup2/./Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp.
246	./Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: No such file or directory.
(gdb) f 4
#4  0x00007ffff4a4937d in WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland ()
    at ./Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:251
251	in ./Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp
(gdb) f 5
#5  0x00007ffff49bc429 in std::default_delete<WebKit::AcceleratedBackingStore>::operator() () at /usr/include/c++/11/bits/unique_ptr.h:85
85		delete __ptr;
(gdb) f 6
#6  std::__uniq_ptr_impl<WebKit::AcceleratedBackingStore, std::default_delete<WebKit::AcceleratedBackingStore> >::reset () at /usr/include/c++/11/bits/unique_ptr.h:182
182		  _M_deleter()(__old_p);
(gdb) f 7
#7  std::unique_ptr<WebKit::AcceleratedBackingStore, std::default_delete<WebKit::AcceleratedBackingStore> >::reset () at /usr/include/c++/11/bits/unique_ptr.h:456
456		_M_t.reset(std::move(__p));
(gdb) f 8
#8  std::unique_ptr<WebKit::AcceleratedBackingStore, std::default_delete<WebKit::AcceleratedBackingStore> >::operator=(decltype(nullptr)) ()
    at /usr/include/c++/11/bits/unique_ptr.h:397
397		reset();
(gdb) f 9
#9  webkitWebViewBaseDispose () at ./Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:724
Download failed: Invalid argument.  Continuing without source file ./build-soup2/./Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp.
724	./Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp: No such file or directory.
(gdb) f 10
#10 0x00007ffff3dc3011 in g_object_run_dispose () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0


I wrote a library for converting HTML to PDF using WebkitGtk,
see the code here https://github.com/gnudles/wkgtkprinter/blob/master/wkgtkprinter.c

When I try to free the webkit_view, I get a segmentation fault.