QT Demo Browser crashing on aarch64 platform
-
COnfiguration:
Qt: 4.8.5
OS: Centos7
GCC: 4.8.5
ARCH: arm Ampere(R) Altra(R) ProcessorI have build qt4.8.5 directly on arm machine and it's crashing with "segmentation fault" message when i search some text in google.com in qt demo browser.
-
@kishore-kkc I doubt anybody will be able to find out why it is crashing with that amount of information.
Please build in debug mode and run through debugger to get the stack trace after the crash. -
Hi @jsulm ,
Thanks for the reply, i haven't enabled notifications that's the reason for late response.
initially browser simply crashed after invocation, but after that i made below change at src/3rdparty/webkit/Source/JavaScriptCore/heap/MarkedBlock.h
Original line: static const size_t blockSize = 16 * KB;
My change: static const size_t blockSize = 64 * KB;after changing blockSize to 64KB, now i'm able to run browser and open www.google.com...but now if i search anything in google, when directing to search results page it's crashing.
Below is the stack trace of the crash:
(gdb) bt
#0 0x0000ffffbcf6f128 in JSC::HandleHeap::Node::handleHeap() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#1 0x0000ffffbcf6ee7c in JSC::HandleHeap::heapFor(JSC::JSValue*) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#2 0x0000ffffbdc7b0a8 in JSC::WeakGCMap<std::pair<WTF::RefPtrWTF::StringImpl, unsigned int>, JSC::Structure, JSC::StructureTransitionTable::WeakGCMapFinalizerCallback, JSC::StructureTransitionTable::Hash, JSC::StructureTransitionTable::HashTraits>::finalize(JSC::HandleJSC::Unknown, void*) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#3 0x0000ffffbdbe2e14 in JSC::HandleHeap::finalizeWeakHandles() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#4 0x0000ffffbdbe45a4 in JSC::Heap::reset(JSC::Heap::SweepToggle) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#5 0x0000ffffbdbe4574 in JSC::Heap::collectAllGarbage() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#6 0x0000ffffbd2daa48 in WebCore::collect(void*) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#7 0x0000ffffbd2dab6c in WebCore::GCController::gcTimerFired(WebCore::TimerWebCore::GCController) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#8 0x0000ffffbd2dad4c in WebCore::TimerWebCore::GCController::fired() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#9 0x0000ffffbd713b80 in WebCore::ThreadTimers::sharedTimerFiredInternal() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#10 0x0000ffffbd713a94 in WebCore::ThreadTimers::sharedTimerFired() ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#11 0x0000ffffbd889874 in WebCore::SharedTimerQt::timerEvent(QTimerEvent) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#12 0x0000ffffbbb065f8 in QObject::event (this=0x6874f0, e=0xffffffffe318) at kernel/qobject.cpp:1134
#13 0x0000ffffbbecbbc8 in QApplicationPrivate::notify_helper (this=0x551350, receiver=0x6874f0, e=0xffffffffe318) at kernel/qapplication.cpp:4542
#14 0x0000ffffbbec9684 in QApplication::notify (this=0xffffffffe750, receiver=0x6874f0, e=0xffffffffe318) at kernel/qapplication.cpp:3924
#15 0x0000ffffbbaef5f4 in QCoreApplication::notifyInternal (this=0xffffffffe750, receiver=0x6874f0, event=0xffffffffe318) at kernel/qcoreapplication.cpp:931
#16 0x0000ffffbd2811c4 in QCoreApplication::sendEvent(QObject*, QEvent*) ()
from qt-everywhere-enterprise-src-4.8.5/lib/libQtWebKit.so.4
#17 0x0000ffffbbb263e0 in QTimerInfoList::activateTimers (this=0x552fd8) at kernel/qeventdispatcher_unix.cpp:613
#18 0x0000ffffbbb27258 in QEventDispatcherUNIX::activateTimers (this=0x552750) at kernel/qeventdispatcher_unix.cpp:870
#19 0x0000ffffbbb2759c in QEventDispatcherUNIX::processEvents (this=0x552750, flags=...) at kernel/qeventdispatcher_unix.cpp:932
#20 0x0000ffffbbf8a5a4 in QEventDispatcherX11::processEvents (this=0x552750, flags=...) at kernel/qeventdispatcher_x11.cpp:130
#21 0x0000ffffbbaecdb4 in QEventLoop::processEvents (this=0xffffffffe6f0, flags=...) at kernel/qeventloop.cpp:127
#22 0x0000ffffbbaecf18 in QEventLoop::exec (this=0xffffffffe6f0, flags=...) at kernel/qeventloop.cpp:178
#23 0x0000ffffbbaefca4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1203
#24 0x0000ffffbbec92b0 in QApplication::exec () at kernel/qapplication.cpp:3803
#25 0x000000000046c724 in main (argc=1, argv=0xffffffffe8c8) at main.cpp:29Webkit Version:
from src/3rdparty/webkit/Source/WebKit/mac/Configurations/Version.xcconfig
MAJOR_VERSION = 534;
MINOR_VERSION = 34; -
@kishore-kkc Do you have to use Qt4? If not upgrade to recent Qt5 version. If you do have to use Qt4 you should consider to upgrade to the latest version (4.8.7 if I remember correctly).
-
Hi @jsulm
Yes @jsulm, we have to use only Qt4.
Though i use 4.8.5 enterprise edition, but as you suggested to try 4.8.7 i have downloaded and build 4.8.7 from https://download.qt.io/archive/qt/4.8/4.8.7.
But still issue is not resolved, still i'm getting same crash.
-
@kishore-kkc said in QT Demo Browser crashing on aarch64 platform:
Though i use 4.8.5 enterprise edition
Sounds like you have a commercial license. If that's the case I suggest to contact QtCompany directly if you do not find a solution here.
-
Yes @jsulm , we use commercial version of 4.8.5... but i don't have account/credential details currently, i just have source code and license key, so cannot contact QtCompany directly, so searching for solution here..
-
You might want to try using QtWebKit 2.3.4 from http://download.kde.org/stable/qtwebkit-2.3/2.3.4/src/qtwebkit-2.3.4.tar.gz, it's totally compatible with your Qt 4.8 while having a bit newer WebKit. Note that you'll still need to change block size. Also note that both versions of WebKit are like 10+ years old and were developed at time when there was no Aarch64 on the horizon.
-
@Konstantin-Tokarev ,
As you suggested, we have tried with 2.3.4 version and changed block size also, but it still didn't work.fFacing same crash. Do you any other suggestions?, or any other ways i can try? -
Make debug build and try to debug it (or, at least, post informative backtrace here)
-
@Konstantin-Tokarev
I have already build debug version and pasted backtrace in the starting of the discussion. Please check. -
Did you build debug version of qtwebkit? Your backtrace doesn't have line numbers so it's hard to say anything about what caused crash
-
@Konstantin-Tokarev
I have build debug libraries with below options to configure script
-debug , -webkit-debug,
is there any option i should pass so that trace gives us more information?