Open ksuprynowicz opened 4 months ago
It happens because script engine that is a member of MyAvatar is assigned to main thread. In my opinion it would be best to instead assign that script engine to its own thread.
Backtrace on script thread:
syscall 0x00007ffff031f059 QtLinuxFutex::_q_futex qfutex_p.h:116 QtLinuxFutex::futexWait<…> qfutex_p.h:135 futexSemaphoreTryAcquire_loop<false> 0x00007ffff60dcf2b futexSemaphoreTryAcquire<false> 0x00007ffff60dcf2b QSemaphore::acquire 0x00007ffff60dcf2b QMetaMethod::invoke 0x00007ffff62d7f2f QMetaObject::invokeMethod 0x00007ffff62dd116 hifi::qt::blockingInvokeMethod QtHelpers.cpp:88 ScriptEngineV8::evaluate ScriptEngineV8.cpp:780 u8vec3ColorToScriptValue ScriptValueUtils.cpp:327 u8vec3Color_convertScriptValue EntityItemPropertiesMacros.h:115 EntityItemProperties::copyToScriptValue EntityItemProperties.cpp:1739 EntityItemPropertiesToScriptValue EntityItemProperties.cpp:2517 EntityItemProperties::propertiesToBlob EntityItemProperties.cpp:4925 MyAvatar::getAvatarEntityData MyAvatar.cpp:1952 AvatarData::qt_static_metacall moc_AvatarData.cpp:550 QMetaMethod::invoke 0x00007ffff62d802e ScriptMethodV8Proxy::call ScriptObjectV8Proxy.cpp:1117 ScriptMethodV8Proxy::callback ScriptObjectV8Proxy.cpp:969 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) 0x00007fffdfeb4b92 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) 0x00007fffdfeb5174 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) 0x00007fffdfeb5a37 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit 0x00007fffdfa1ef39 Builtins_InterpreterEntryTrampoline 0x00007fffdf9a2e90 <unknown> 0x000011328c6415b9 <unknown> 0x00000f4f10ad7619 <unknown> 0x0000000500000000 <unknown> 0x000011328c641689 <unknown> 0x000015d55ab0c6a1 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000015d55ab0c6a1 <unknown> 0x00000f4f10ad7619 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x0000004000000000 <unknown> 0x00000016eb08f819 <unknown> 0x0000000000000001 <unknown> 0x000025219ba19251 <unknown> 0x00000c9f455c1151 <unknown> 0x00007ffdb17f6920 Builtins_InterpreterEntryTrampoline 0x00007fffdf9a2e90 <unknown> 0x00000c9f455c1131 <unknown> 0x000011328c6415b9 <unknown> 0x000011328c6415b9 <unknown> 0x000015d55ab0be91 <unknown> 0x000025219ba19251 <unknown> 0x0000004a00000000 <unknown> 0x00000016eb08f709 <unknown> 0x0000000000000001 <unknown> 0x000025219ba09181 <unknown> 0x000025219ba09099 <unknown> 0x00007ffdb17f6948 Builtins_JSEntryTrampoline 0x00007fffdf9a149c <unknown> 0x000025219ba09181 <unknown> 0x000025219ba09181 <unknown> 0x0000000000000026 <unknown> 0x00007ffdb17f69b0 Builtins_JSEntry 0x00007fffdf9a11c3
Backtrace on main thread:
futex_wait 0x00007ffff02a33db __GI___lll_lock_wait 0x00007ffff02a33db lll_mutex_lock_optimized 0x00007ffff02a96f2 ___pthread_mutex_lock 0x00007ffff02a96f2 __gthread_mutex_lock gthr-default.h:749 std::mutex::lock std_mutex.h:113 std::lock_guard::lock_guard std_mutex.h:249 operator() MyAvatar.cpp:1742 ReadWriteLockable::withReadLock<…>(struct {...} &&) const ReadWriteLockable.h:109 MyAvatar::handleChangedAvatarEntityData MyAvatar.cpp:1736 MyAvatar::simulate MyAvatar.cpp:1050 MyAvatar::update MyAvatar.cpp:826 AvatarManager::updateMyAvatar AvatarManager.cpp:170 Application::update Application.cpp:6752 Application::idle Application.cpp:5393 Application::event Application.cpp:4328 QApplicationPrivate::notify_helper 0x00007fffeeb62f32 Application::notify Application.cpp:4292 QCoreApplication::notifyInternal2 0x00007ffff62cc748 QCoreApplication::sendEvent 0x00007ffff62cc922 QCoreApplicationPrivate::sendPostedEvents 0x00007ffff62cfe51 QCoreApplication::sendPostedEvents 0x00007ffff62d03ac postEventSourceDispatch 0x00007ffff6328697 g_main_dispatch 0x00007fffefb111f4 g_main_context_dispatch_unlocked 0x00007fffefb14317 g_main_context_iterate_unlocked 0x00007fffefb14317 g_main_context_iteration 0x00007fffefb14930 QEventDispatcherGlib::processEvents 0x00007ffff6327d4a QEventLoop::exec qflags.h:69 QCoreApplication::exec qflags.h:121 main main.cpp:776 __libc_start_call_main 0x00007ffff02456ca __libc_start_main_impl 0x00007ffff0245785 _start 0x000055555577f441
It happens because script engine that is a member of MyAvatar is assigned to main thread. In my opinion it would be best to instead assign that script engine to its own thread.
Backtrace on script thread:
Backtrace on main thread: