Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-45231

Crash after gc sweep with asynchronous code

    XMLWordPrintable

Details

    Description

      I get a crash when running the attached code. I've tried to reduce the code as much as possible. A lot of our QML code is based on javascript Promise constructs, and it seems to be crashing when mixed with asynchronous C++ objects (like Timer, XMLHttpRequest...).

      Here is the trace I get with the qml tool, qtdeclarative build with valgrind config:

      # QV4_NO_SSA=1 QV4_FORCE_INTERPRETER=1 valgrind qml -apptype core gc_crash.qml 
      ==26062== Memcheck, a memory error detector
      ==26062== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==26062== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
      ==26062== Command: qml -apptype core /media/goinfre/qml_test/gc_crash.qml
      ==26062== 
      qml: gc
      ==26062== Invalid read of size 4
      ==26062==    at 0x40A4689: QV4::Value::isObject() const (qv4value_inl_p.h:58)
      ==26062==    by 0x419E5B7: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1007)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==    by 0x41C5BE9: QQmlBoundSignalExpression::evaluate(void**) (qqmlboundsignal.cpp:281)
      ==26062==  Address 0x6b52f40 is 0 bytes inside a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ==26062== Invalid read of size 1
      ==26062==    at 0x40A468B: QV4::Value::isObject() const (qv4value_inl_p.h:58)
      ==26062==    by 0x419E5B7: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1007)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==    by 0x41C5BE9: QQmlBoundSignalExpression::evaluate(void**) (qqmlboundsignal.cpp:281)
      ==26062==  Address 0x6b52f66 is 6 bytes after a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ==26062== Invalid read of size 4
      ==26062==    at 0x40D596F: QV4::Value::isString() const (qv4value_inl_p.h:52)
      ==26062==    by 0x41A2328: QV4::Value::toQStringNoThrow() const (qv4value.cpp:124)
      ==26062==    by 0x419E5CD: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1008)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==  Address 0x6b52f40 is 0 bytes inside a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ==26062== Invalid read of size 1
      ==26062==    at 0x40D5971: QV4::Value::isString() const (qv4value_inl_p.h:52)
      ==26062==    by 0x41A2328: QV4::Value::toQStringNoThrow() const (qv4value.cpp:124)
      ==26062==    by 0x419E5CD: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1008)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==  Address 0x6b52f66 is 6 bytes after a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ==26062== Invalid read of size 4
      ==26062==    at 0x40A4689: QV4::Value::isObject() const (qv4value_inl_p.h:58)
      ==26062==    by 0x41A2359: QV4::Value::toQStringNoThrow() const (qv4value.cpp:127)
      ==26062==    by 0x419E5CD: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1008)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==  Address 0x6b52f40 is 0 bytes inside a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ==26062== Invalid read of size 1
      ==26062==    at 0x40A468B: QV4::Value::isObject() const (qv4value_inl_p.h:58)
      ==26062==    by 0x41A2359: QV4::Value::toQStringNoThrow() const (qv4value.cpp:127)
      ==26062==    by 0x419E5CD: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1008)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0D00: QV4::Runtime::callProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:974)
      ==26062==    by 0x4195D66: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:556)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41FFBCD: call (qv4object_p.h:302)
      ==26062==    by 0x41FFBCD: QQmlJavaScriptExpression::evaluate(QQmlContextData*, QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:157)
      ==26062==  Address 0x6b52f66 is 6 bytes after a block of size 32 free'd
      ==26062==    at 0x414D9A9: sweepChunk (qv4mm.cpp:192)
      ==26062==    by 0x414D9A9: QV4::MemoryManager::sweep(bool) (qv4mm.cpp:407)
      ==26062==    by 0x414DD9B: QV4::MemoryManager::runGC() (qv4mm.cpp:494)
      ==26062==    by 0x42153AC: QV4::GlobalExtensions::method_gc(QV4::CallContext*) (qqmlbuiltinfunctions.cpp:1866)
      ==26062==    by 0x415FA54: QV4::BuiltinFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:589)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x41A0932: QV4::Runtime::callActivationProperty(QV4::ExecutionEngine*, int, QV4::CallData*) (qv4runtime.cpp:947)
      ==26062==    by 0x4195EA5: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:583)
      ==26062==    by 0x4196D3B: QV4::Moth::VME::exec(QV4::ExecutionEngine*, unsigned char const*) (qv4vme_moth.cpp:925)
      ==26062==    by 0x4161022: QV4::SimpleScriptFunction::call(QV4::Managed*, QV4::CallData*) (qv4functionobject.cpp:539)
      ==26062==    by 0x41498F8: QV4::Object::call(QV4::CallData*) (qv4object_p.h:302)
      ==26062==    by 0x419E636: QV4::Runtime::callValue(QV4::ExecutionEngine*, QV4::Value const&, QV4::CallData*) (qv4runtime.cpp:1010)
      ==26062==    by 0x4195CFD: QV4::Moth::VME::run(QV4::ExecutionEngine*, unsigned char const*, void***) (qv4vme_moth.cpp:546)
      ==26062== 
      ASSERT: "isObject()" in file ../../../gitsrc/src/qml/jsruntime/qv4value.cpp, line 127
      ==26062== 
      ==26062== HEAP SUMMARY:
      ==26062==     in use at exit: 340,826 bytes in 5,190 blocks
      ==26062==   total heap usage: 18,358 allocs, 7,638 frees, 1,365,491 bytes allocated
      ==26062== 
      ==26062== LEAK SUMMARY:
      ==26062==    definitely lost: 288 bytes in 5 blocks
      ==26062==    indirectly lost: 904 bytes in 13 blocks
      ==26062==      possibly lost: 2,344 bytes in 22 blocks
      ==26062==    still reachable: 432,814 bytes in 7,539 blocks
      ==26062==         suppressed: 0 bytes in 0 blocks
      ==26062== Rerun with --leak-check=full to see details of leaked memory
      ==26062== 
      ==26062== For counts of detected and suppressed errors, rerun with: -v
      ==26062== ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0)
      Killed
      

      Attachments

        1. gc_crash.js
          0.3 kB
        2. gc_crash.qml
          0.3 kB

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              laknoll Lars Knoll
              rawoul Arnaud Vrac
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes