Open ksuprynowicz opened 9 hours ago
QCoreApplicationPrivate::lockThreadPostEventList(QObject*) 0x00007f9cd3ee0331
ScriptObjectV8Proxy::weakHandleCallback(const v8::WeakCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:415
ScriptEngineV8::convertJSObjectToVariant(v8::Local<…>, QVariant &) ScriptEngineV8_cast.cpp:588
ScriptEngineV8::castValueToVariant(const V8ScriptValueTemplate<…> &, QVariant &, int) ScriptEngineV8_cast.cpp:501
ScriptMethodV8Proxy::call(const v8::FunctionCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:1059
ScriptMethodV8Proxy::callback(const v8::FunctionCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:998
ScriptValueV8Wrapper::call(const ScriptValue &, const QList<…> &) ScriptValueV8Wrapper.cpp:102
ScriptValue::call(const ScriptValue &, const QList<…> &) const ScriptValue.h:220
operator() ScriptManager.cpp:2583
ScriptManager::doWithEnvironment(const EntityItemID &, const QUrl &, std::function<…>) ScriptManager.cpp:2575
ScriptManager::callWithEnvironment(const EntityItemID &, const QUrl &, const ScriptValue &, const ScriptValue &, const QList<…> &) ScriptManager.cpp:2585
ScriptManager::timerFired() ScriptManager.cpp:1216
Application::notify(QObject *, QEvent *) Application.cpp:4278
ScriptManager::run() ScriptManager.cpp:1037
operator() ScriptManager.cpp:420
It looks like a lot of objects are getting deleted after script engine gets deleted:
[11/14 14:17:34] [DEBUG] [hifi.networking] Returning username "X74hc595" signed with connection UUID "17a49afa-8749-406d-91b0-6b3d0d161092"
[11/14 14:17:34] [DEBUG] [default] ScriptManager::~ScriptManager() : Script manager deleted, type: ScriptManager::ENTITY_CLIENT name: "about:Entities 4"
ScriptManager::~ScriptManager[11/14 14:17:34] [DEBUG] [overte.scriptengine] ScriptMethodV8Proxy destroyed
ScriptMethodV8Proxy destroyed[11/14 14:17:34] [DEBUG] [default] ScriptEngineV8::~ScriptEngineV8: script engine destroyed
[11/14 14:17:34] [DEBUG] [overte.scriptengine.v8] Deleting object proxy: ""
[Previous message was repeated 9 times]
[11/14 14:17:34] [DEBUG] [overte.scriptengine.v8] Deleting object proxy: "controlViews"
[11/14 14:17:34] [DEBUG] [overte.scriptengine.v8] Deleting object proxy: ""
[Previous message was repeated 43 times]
[11/14 14:17:34] [DEBUG] [overte.scriptengine.v8] Deleting object proxy: "Stats"
[11/14 14:17:34] [DEBUG] [overte.scriptengine.v8] Deleting object proxy: ""
[Previous message was repeated 6 times]
[11/14 14:17:34] [DEBUG] [default] ScriptSignalV8Proxy::~ScriptSignalV8Proxy()
[11/14 14:17:34] [FATAL] [default] ASSERT: "!_engine->_wasDestroyed" in file /home/ksuprynowicz/overte/overte/libraries/script-engine/src/v8/ScriptObjectV8Proxy.cpp, line 1222
Signal: SIGABRT (signal SIGABRT)
[Inlined] v8::internal::GlobalHandles::NodeBlock<v8::internal::GlobalHandles::Node>::From(v8::internal::GlobalHandles::Node*) 0x00007fe2c36921df
[Inlined] v8::internal::GlobalHandles::NodeSpace<v8::internal::GlobalHandles::Node>::Release(v8::internal::GlobalHandles::Node*) 0x00007fe2c36921df
v8::PersistentBase::Reset() v8-persistent-handle.h:477
ScriptObjectV8Proxy::weakHandleCallback(const v8::WeakCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:414
v8::internal::GlobalHandles::PendingPhantomCallback::Invoke(v8::internal::Isolate*, v8::internal::GlobalHandles::PendingPhantomCallback::InvocationType) 0x00007fe2c3692913
[Inlined] unsigned long v8::internal::GlobalHandles::InvokeFirstPassWeakCallbacks<v8::internal::GlobalHandles::Node>(std::vector<std::pair<v8::internal::GlobalHandles::Node*, v8::internal::GlobalHandles::PendingPhantomCallback>, std::allocator<std::pair<v8::internal::GlobalHandles::Node*, v8::internal::GlobalHandles::PendingPhantomCallback>>>*) 0x00007fe2c3695f77
v8::internal::GlobalHandles::InvokeFirstPassWeakCallbacks() 0x00007fe2c3695f40
v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*, v8::GCCallbackFlags) 0x00007fe2c36ff251
v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) 0x00007fe2c36ffe46
v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) 0x00007fe2c36dc81d
v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) 0x00007fe2c36dd954
[Inlined] v8::internal::HeapObject v8::internal::HeapAllocator::AllocateRawWith<(v8::internal::HeapAllocator::AllocationRetryMode)1>(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) 0x00007fe2c36bd4e7
v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) 0x00007fe2c36bd454
[Inlined] v8::internal::FactoryBase<v8::internal::Factory>::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) 0x00007fe2c36b35ac
[Inlined] v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawArray(int, v8::internal::AllocationType) 0x00007fe2c36b359f
[Inlined] v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawFixedArray(int, v8::internal::AllocationType) 0x00007fe2c36b359f
[Inlined] v8::internal::FactoryBase<v8::internal::Factory>::NewFixedArrayWithFiller(v8::internal::Handle<v8::internal::Map>, int, v8::internal::Handle<v8::internal::Oddball>, v8::internal::AllocationType) 0x00007fe2c36b3583
v8::internal::MaybeHandle<v8::internal::OrderedHashSet> v8::internal::OrderedHashTable<v8::internal::OrderedHashSet, 1>::Allocate<v8::internal::Isolate>(v8::internal::Isolate*, int, v8::internal::AllocationType) 0x00007fe2c39a82c3
v8::internal::MaybeHandle<v8::internal::OrderedHashSet> v8::internal::OrderedHashSet::Allocate<v8::internal::Isolate>(v8::internal::Isolate*, int, v8::internal::AllocationType) 0x00007fe2c39a8325
v8::internal::KeyAccumulator::AddKey(v8::internal::Handle<v8::internal::Object>, v8::internal::AddKeyConversion) 0x00007fe2c395178f
v8::internal::KeyAccumulator::AddKeys(v8::internal::Handle<v8::internal::FixedArray>, v8::internal::AddKeyConversion) 0x00007fe2c3951934
v8::internal::KeyAccumulator::CollectOwnPropertyNames(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) 0x00007fe2c3956b0d
v8::internal::KeyAccumulator::CollectOwnKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSObject>) 0x00007fe2c395700e
v8::internal::KeyAccumulator::CollectKeys(v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::Handle<v8::internal::JSReceiver>) 0x00007fe2c3957dd9
v8::Object::GetPropertyNames(v8::Local<v8::Context>, v8::KeyCollectionMode, v8::PropertyFilter, v8::IndexFilter, v8::KeyConversionMode) 0x00007fe2c3511daa
ScriptValueV8Wrapper::getPropertyNames() const ScriptValueV8Wrapper.cpp:523
ScriptValue::getPropertyNames() const ScriptValue.h:361
EntityItemProperties::copyFromScriptValue(const ScriptValue &, bool) EntityItemProperties.cpp:1192
EntityItemPropertiesFromScriptValueHonorReadOnly(const ScriptValue &, EntityItemProperties &) EntityItemProperties.cpp:1759
bool fromScriptValueWrapper<EntityItemProperties, &EntityItemPropertiesFromScriptValueHonorReadOnly(ScriptValue const&, EntityItemProperties&)>(ScriptValue const&, QVariant&) EntityScriptingInterface.cpp:60
ScriptEngineV8::castValueToVariant(const V8ScriptValueTemplate<…> &, QVariant &, int) ScriptEngineV8_cast.cpp:333
ScriptMethodV8Proxy::call(const v8::FunctionCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:1067
ScriptMethodV8Proxy::callback(const v8::FunctionCallbackInfo<…> &) ScriptObjectV8Proxy.cpp:998
Builtins_CallApiCallback 0x00007fe2c2ff3cef
<unknown> 0x00007fe2fb70f406
<unknown> 0x00007fe2fb71232c
Builtins_JSEntryTrampoline 0x00007fe2c2ff0adc
Builtins_JSEntry 0x00007fe2c2ff0803
[Inlined] v8::internal::GeneratedCode::Call(unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long **) simulator.h:156
v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate *, const v8::internal::(anonymous namespace)::InvokeParams &) 0x00007fe2c3651e4f
v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) 0x00007fe2c3652fcd
v8::Object::CallAsFunction(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) 0x00007fe2c3528917
ScriptSignalV8Proxy::qt_metacall(QMetaObject::Call, int, void **) ScriptObjectV8Proxy.cpp:1317
<unknown> 0x00007fe2d9918a4d
ScriptManagerScriptingInterface::update(float) moc_ScriptManagerScriptingInterface.cpp:912
QtPrivate::FunctorCall::call(void (ScriptManagerScriptingInterface::*)(float), ScriptManagerScriptingInterface *, void **) qobjectdefs_impl.h:152
QtPrivate::FunctionPointer::call<…>(void (ScriptManagerScriptingInterface::*)(float), ScriptManagerScriptingInterface *, void **) qobjectdefs_impl.h:185
QtPrivate::QSlotObject::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) qobjectdefs_impl.h:418
<unknown> 0x00007fe2d9918cbe
ScriptManager::update(float) moc_ScriptManager.cpp:899
ScriptManager::run() ScriptManager.cpp:1095
operator() ScriptManager.cpp:420
QtPrivate::FunctorCall::call((unnamed struct) &, void **) qobjectdefs_impl.h:146
QtPrivate::Functor::call<…>((unnamed struct) &, void *, void **) qobjectdefs_impl.h:256
QtPrivate::QFunctorSlotObject::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) qobjectdefs_impl.h:443
<unknown> 0x00007fe2d991890e
QThread::started(QThread::QPrivateSignal) 0x00007fe2d96dcbae
<unknown> 0x00007fe2d96decca
<unknown> 0x00007fe2d3aa1732
<unknown> 0x00007fe2d3b1c2b8
It's hard to figure out what is causing these, but https://github.com/overte-org/overte/issues/1228 doesn't seem to fix it. I'm testing this currently on local copy and I noticed use after delete assert when leaving the domain: