** Changed in: qtdeclarative-opensource-src (Ubuntu) Assignee: Albert Astals Cid (aacid) => Lorn Potter (lorn-potter)
-- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtdeclarative-opensource- src in Ubuntu. https://bugs.launchpad.net/bugs/1373039 Title: Crash in QML compiler if terminated whilst compiling asynchronous components Status in “qtdeclarative-opensource-src” package in Ubuntu: Confirmed Bug description: Reproducible on mako and krillin using devel-proposed r248 or rtm r50 This is easiest to reproduce with the camera-app, as this has a number of large components that get loaded asynchronously on start-up, however I believe it should be possible to trigger in any app that contains asynchronous Loaders. Steps to reproduce 1. Start camera-app 2. Whilst loading, swipe to the app switcher. 3. Close camera-app. Expected result App closes cleanly Actual result Sometimes the app segfaults whilst closing It may take multiple attempts to cause a crash, as the SIGTERM signal has to be received at a certain point during the compilation process for the crash to occur. Back trace of an example crash: "There are still "1" items in the process of being created at engine destruction." [Thread 0xac267450 (LWP 5576) exited] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb1a3e450 (LWP 5561)] 0xb6618dd6 in createNode (left=false, parent=0x0, v=@0x31: <error reading variable>, k=@0x2d: <error reading variable>, this=0xae598538) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:216 216 new (&n->key) Key(k); (gdb) bt #0 0xb6618dd6 in createNode (left=false, parent=0x0, v=@0x31: <error reading variable>, k=@0x2d: <error reading variable>, this=0xae598538) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:216 #1 QMapNode<unsigned int, QV4::ExecutableAllocator::ChunkOfPages*>::copy (this=0x21, d=d@entry=0xae598538) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:246 #2 0xb6618e02 in QMapNode<unsigned int, QV4::ExecutableAllocator::ChunkOfPages*>::copy (this=0xb11a5c28, d=d@entry=0xae598538) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:249 #3 0xb6618e02 in QMapNode<unsigned int, QV4::ExecutableAllocator::ChunkOfPages*>::copy (this=0xae54a2f8, d=d@entry=0xae598538) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:249 #4 0xb6618e4e in QMap<unsigned int, QV4::ExecutableAllocator::ChunkOfPages*>::detach_helper (this=0x6ae34) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:969 #5 0xb6618950 in detach (this=0x6ae34) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:378 #6 insert (avalue=<synthetic pointer>, akey=<optimized out>, this=0x6ae34) at /usr/include/arm-linux-gnueabihf/qt5/QtCore/qmap.h:676 #7 QV4::ExecutableAllocator::allocate (this=0x6ae30, size=592, size@entry=578) at jsruntime/qv4executableallocator.cpp:179 #8 0xb65bc900 in ExecutableMemoryHandle (size=578, allocator=<optimized out>, this=0xae5af100) at ../3rdparty/masm/stubs/ExecutableAllocator.h:66 #9 allocate (size=578, this=0xb1a3cfbc) at ../3rdparty/masm/stubs/ExecutableAllocator.h:97 #10 JSC::LinkBuffer::linkCode (this=this@entry=0xb1a3d068, ownerUID=ownerUID@entry=0x0, effort=effort@entry=JSC::JITCompilationMustSucceed) at ../3rdparty/masm/assembler/LinkBuffer.cpp:79 #11 0xb65b18de in LinkBuffer (effort=JSC::JITCompilationMustSucceed, ownerUID=0x0, masm=0xae5a9aa0, globalData=..., this=0xb1a3d068) at ../3rdparty/masm/assembler/LinkBuffer.h:92 #12 QV4::JIT::Assembler::link (this=0xae5a9aa0, codeSize=codeSize@entry=0xb1a3d0e8) at jit/qv4isel_masm.cpp:141 #13 0xb65b2918 in QV4::JIT::InstructionSelection::run (this=<optimized out>, functionIndex=<optimized out>) at jit/qv4isel_masm.cpp:360 #14 0xb65658f0 in QV4::EvalInstructionSelection::compile (this=this@entry=0xae564070, generateUnitData=generateUnitData@entry=false) at compiler/qv4isel_p.cpp:85 #15 0xb6617608 in QV4::Script::precompile (module=module@entry=0xb1a3d460, unitGenerator=unitGenerator@entry=0xb1a3d49c, engine=engine@entry=0x6b290, url=..., source=..., reportedErrors=reportedErrors@entry=0xb1a3d414) at jsruntime/qv4script.cpp:397 #16 0xb666b5ac in QQmlScriptBlob::dataReceived (this=0xae5a8a18, data=...) at qml/qqmltypeloader.cpp:2698 #17 0xb66650ac in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xae5a8a18, d=...) at qml/qqmltypeloader.cpp:1198 #18 0xb6665292 in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xae5a8a18, file=file@entry=0xb1a3d558) at qml/qqmltypeloader.cpp:1190 #19 0xb66679f8 in QQmlDataLoader::loadThread (this=this@entry=0x6ac44, blob=blob@entry=0xae5a8a18) at qml/qqmltypeloader.cpp:1068 #20 0xb6667dd2 in QQmlDataLoader::load (this=0x6ac44, blob=0xae5a8a18, mode=QQmlDataLoader::PreferSynchronous) at qml/qqmltypeloader.cpp:932 #21 0xb6667fc2 in QQmlTypeLoader::getScript (this=0x6ac44, url=...) at qml/qqmltypeloader.cpp:1649 #22 0xb666a818 in QQmlTypeLoader::Blob::addImport (this=this@entry=0xb11033f0, import=import@entry=0xae58a7c0, errors=errors@entry=0xb1a3d67c) at qml/qqmltypeloader.cpp:1312 #23 0xb666aaa8 in QQmlTypeData::continueLoadFromIR (this=this@entry=0xb11033f0) at qml/qqmltypeloader.cpp:2267 #24 0xb666afda in QQmlTypeData::dataReceived (this=0xb11033f0, data=...) at qml/qqmltypeloader.cpp:2224 #25 0xb66650ac in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xb11033f0, d=...) at qml/qqmltypeloader.cpp:1198 #26 0xb6665292 in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xb11033f0, file=file@entry=0xb1a3d7a0) at qml/qqmltypeloader.cpp:1190 #27 0xb66679f8 in QQmlDataLoader::loadThread (this=this@entry=0x6ac44, blob=blob@entry=0xb11033f0) at qml/qqmltypeloader.cpp:1068 #28 0xb6667dd2 in QQmlDataLoader::load (this=0x6ac44, blob=0xb11033f0, mode=QQmlDataLoader::PreferSynchronous) at qml/qqmltypeloader.cpp:932 #29 0xb6667eaa in QQmlTypeLoader::getType (this=this@entry=0x6ac44, url=..., mode=mode@entry=QQmlDataLoader::PreferSynchronous) at qml/qqmltypeloader.cpp:1606 #30 0xb666912c in QQmlTypeData::resolveTypes (this=0xae549db8) at qml/qqmltypeloader.cpp:2452 #31 0xb6669710 in QQmlTypeData::allDependenciesDone (this=0xae549db8) at qml/qqmltypeloader.cpp:2312 #32 0xb666510e in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xae549db8, d=...) at qml/qqmltypeloader.cpp:1201 #33 0xb6665292 in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0xae549db8, file=file@entry=0xb1a3d9b8) at qml/qqmltypeloader.cpp:1190 #34 0xb66679f8 in QQmlDataLoader::loadThread (this=this@entry=0x6ac44, blob=blob@entry=0xae549db8) at qml/qqmltypeloader.cpp:1068 #35 0xb6667dd2 in QQmlDataLoader::load (this=0x6ac44, blob=0xae549db8, mode=QQmlDataLoader::PreferSynchronous) at qml/qqmltypeloader.cpp:932 #36 0xb6667eaa in QQmlTypeLoader::getType (this=this@entry=0x6ac44, url=..., mode=mode@entry=QQmlDataLoader::PreferSynchronous) at qml/qqmltypeloader.cpp:1606 #37 0xb666912c in QQmlTypeData::resolveTypes (this=0x18ee08) at qml/qqmltypeloader.cpp:2452 #38 0xb6669710 in QQmlTypeData::allDependenciesDone (this=0x18ee08) at qml/qqmltypeloader.cpp:2312 #39 0xb666510e in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0x18ee08, d=...) at qml/qqmltypeloader.cpp:1201 #40 0xb6665292 in QQmlDataLoader::setData (this=this@entry=0x6ac44, blob=blob@entry=0x18ee08, file=file@entry=0xb1a3dbd0) at qml/qqmltypeloader.cpp:1190 #41 0xb66679f8 in QQmlDataLoader::loadThread (this=0x6ac44, blob=blob@entry=0x18ee08) at qml/qqmltypeloader.cpp:1068 #42 0xb6667d32 in QQmlDataLoaderThread::loadThread (this=<optimized out>, b=0x18ee08) at qml/qqmltypeloader.cpp:816 #43 0xb66a2320 in QQmlThreadPrivate::threadEvent (this=0x6ad08) at qml/ftw/qqmlthread.cpp:198 #44 0xb66a26e8 in QQmlThreadPrivate::event (this=0x6ad08, e=<optimized out>) at qml/ftw/qqmlthread.cpp:136 #45 0xb6e11f92 in QCoreApplication::notify(QObject*, QEvent*) () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 #46 0xb6e11d88 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 #47 0xb6e138ae in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 #48 0xb6e4bea8 in ?? () from /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5 #49 0xb5facf58 in g_main_context_dispatch () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0 #50 0xb5fad104 in ?? () from /lib/arm-linux-gnueabihf/libglib-2.0.so.0 Backtrace stopped: previous frame identical to this frame (corrupt stack?) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/qtdeclarative-opensource-src/+bug/1373039/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp