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

Reply via email to