Hello,
We are trying to develop a linux desktop application to interact with our web
application and have chosen to build it using gtk-4 and webkitgtk. I started
running into seemingly random segfaults using 2.48.1 from the debian repo so I
built webkitgtk-2.48.2 from the tar-ball available for download from the
webkitgtk site, in hopes of it solving the issue.
However, this was not the case. Still getting segfaults that to me seem to be
outside of the scope of our project. I have no clue where to begin searching
for a solution for this. Output of gdb bt full:
Thread 77 "HeapHelper" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1a7fc6c0 (LWP 227548)]
0x00007ffff0c375dc in JSC::MethodTable::visitChildren (visitor=...,
cell=0x7fffd59742e0, this=0x30)
at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/runtime/ClassInfo.h:115
115 ALWAYS_INLINE void visitChildren(JSCell* cell, SlotVisitor& visitor)
const { visitChildrenWithSlotVisitor(cell, visitor); }
(gdb) bt full
#0 0x00007ffff0c375dc in JSC::MethodTable::visitChildren(JSC::JSCell*,
JSC::SlotVisitor&) const
(visitor=..., cell=0x7fffd59742e0, this=0x30)
at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/runtime/ClassInfo.h:115
currentCellScope = {m_visitor = @0x7fffde184700}
countdown = 95
this = 0x7fffde184700
status = <optimized out>
locker = {<WTF::AbstractLocker> = {<No data fields>}, m_lock =
<optimized out>, m_isLocked = <optimized out>}
#1 JSC::SlotVisitor::visitChildren(JSC::JSCell const*) (cell=0x7fffd59742e0,
this=0x7fffde184700)
at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/SlotVisitor.cpp:399
currentCellScope = {m_visitor = @0x7fffde184700}
countdown = 95
this = 0x7fffde184700
status = <optimized out>
locker = {<WTF::AbstractLocker> = {<No data fields>}, m_lock =
<optimized out>, m_isLocked = <optimized out>}
#2 operator()(JSC::MarkStackArray&) const
(__closure=__closure@entry=0x7fff1a7fb480, stack=...)
at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/SlotVisitor.cpp:509
countdown = 95
this = 0x7fffde184700
status = <optimized out>
locker = {<WTF::AbstractLocker> = {<No data fields>}, m_lock =
<optimized out>, m_isLocked = <optimized out>}
#3 0x00007ffff0c39e77 in
JSC::SlotVisitor::forEachMarkStack<JSC::SlotVisitor::drain(WTF::MonotonicTime)::<lambda(JSC::MarkStackArray&)>
> (func=..., this=0x7fffde184700) at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/SlotVisitorInlines.h:190
status = <optimized out>
locker = {<WTF::AbstractLocker> = {<No data fields>}, m_lock =
@0x7fffde1847bc, m_isLocked = true}
#4 JSC::SlotVisitor::drain(WTF::MonotonicTime)
(this=this@entry=0x7fffde184700, timeout=timeout@entry=...)
at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/SlotVisitor.cpp:499
status = <optimized out>
locker = {<WTF::AbstractLocker> = {<No data fields>}, m_lock =
@0x7fffde1847bc, m_isLocked = true}
#5 0x00007ffff0c3a620 in
JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode,
WTF::MonotonicTime)
(this=this@entry=0x7fffde184700,
sharedDrainMode=sharedDrainMode@entry=JSC::SlotVisitor::HelperDrain,
timeout=...,
timeout@entry=...) at
/home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/SlotVisitor.cpp:699
bonusTask = {m_ptr = <optimized out>}
isActive = <optimized out>
#6 0x00007ffff0bf4c1b in operator() (__closure=0x7fffde4e80f0)
at /home/username/webkitgtk-2.48.2/Source/JavaScriptCore/heap/Heap.cpp:1487
visitor = 0x7fffde184700
this = 0x7fffd55410c0
#7 WTF::SharedTaskFunctor<void(),
JSC::Heap::runBeginPhase(JSC::GCConductor)::<lambda()> >::run(void)
(this=0x7fffde4e80e0)
at /home/username/webkitgtk-2.48.2/WTF/Headers/wtf/SharedTask.h:91
#8 0x00007ffff1811cd7 in
WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>,
WTF::RawPtrTraits<WTF::SharedTask<void ()> >,
WTF::DefaultRefDerefTraits<WTF::SharedTask<void ()> > > const&)
(this=0x7fffd5541428, task=...)
at /home/username/webkitgtk-2.48.2/Source/WTF/wtf/ParallelHelperPool.cpp:110
#9 0x00007ffff1811da1 in WTF::ParallelHelperPool::Thread::work()
(this=0x7fffde4b02c0)
at /home/username/webkitgtk-2.48.2/Source/WTF/wtf/ParallelHelperPool.cpp:201
#10 0x00007ffff17e60a7 in operator() (__closure=0x7fffde498788)
at /home/username/webkitgtk-2.48.2/Source/WTF/wtf/AutomaticThread.cpp:225
result = <optimized out>
stopImpl = {__thread = <synthetic pointer>}
this = 0x7fffde4b02c0
preserveThisForThread = {m_ptr = 0x7fffde4b02c0}
#11 WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(const
WTF::AbstractLocker&)::<lambda()>, void>::call(void)
(this=0x7fffde498780) at
/home/username/webkitgtk-2.48.2/Source/WTF/wtf/Function.h:53
#12 0x00007ffff1856f16 in WTF::Function<void ()>::operator()() const
(this=<synthetic pointer>)
at /home/username/webkitgtk-2.48.2/Source/WTF/wtf/Function.h:79
function = {m_callableWrapper =
std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() =
0x7fffde498780}}
#13 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)
(newThreadContext=0x7fffde4b04f0)
at /home/username/webkitgtk-2.48.2/Source/WTF/wtf/Threading.cpp:268
function = {m_callableWrapper =
std::unique_ptr<WTF::Detail::CallableWrapperBase<void>> = {get() =
0x7fffde498780}}
#14 0x00007ffff18b9429 in WTF::wtfThreadEntryPoint(void*) (context=<optimized
out>)
at
/home/username/webkitgtk-2.48.2/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:241
#15 0x00007ffff1ec81f5 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140733637969600,
1972617451061591819, -240, 0, 140734015439344, 140733629579264,
-1973119925991817461, -1972639557268455669}, mask_was_saved = 0}}, priv = {pad
= {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#16 0x00007ffff1f4889c in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
Any help would be much appriciated.
Regards,
Jonny Wikström
_______________________________________________
webkit-help mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-help