vircadia-native-core icon indicating copy to clipboard operation
vircadia-native-core copied to clipboard

Crash when loading specific model as avatar

Open JulianGro opened this issue 4 years ago • 7 comments

When loading this model as an avatar. People that load this (same as the person wearing it) crash. https://data.moto9000.moe/000.fbx Of course this shouldn't be loaded as an avatar, but it shouldn't just crash.

JulianGro avatar Nov 30 '20 23:11 JulianGro

Here is a backtrace on 2020.3.3:

(gdb) bt
#0  0x00007ffff6572b41 in MultiSphereShape::calculateSphereLines (this=0x7fffffff8570, outLines=std::vector of length 0, capacity 0, center=..., radius=<error reading variable>, subdivisions=@0x7ffff668b7a8: 16, direction=..., percentage=@0x7fffffff7fb0: 1, edge=0x0)
    at /home/motofckr9k/Vircadia/source/libraries/physics/src/MultiSphereShape.cpp:590
#1  0x00007ffff6571ce2 in MultiSphereShape::calculateChamferBox (this=0x7fffffff8570, outLines=std::vector of length 0, capacity 0, radiuses=std::vector of length 0, capacity 0, axes=std::vector of length 8, capacity 8 = {...}, translation=...)
    at /home/motofckr9k/Vircadia/source/libraries/physics/src/MultiSphereShape.cpp:512
#2  0x00007ffff6571964 in MultiSphereShape::calculateDebugLines (this=0x7fffffff8570) at /home/motofckr9k/Vircadia/source/libraries/physics/src/MultiSphereShape.cpp:490
#3  0x00007ffff7cb5032 in Avatar::computeMultiSphereShapes (this=0x555562c592d0) at /home/motofckr9k/Vircadia/source/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp:1615
#4  0x00007ffff7cb4c02 in Avatar::rigReady (this=0x555562c592d0) at /home/motofckr9k/Vircadia/source/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp:1581
#5  0x0000555555d77b39 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (Avatar::*)()>::call(void (Avatar::*)(), Avatar*, void**) (f=(void (Avatar::*)(Avatar * const)) 0x7ffff7cb4bc2 <Avatar::rigReady()>, o=0x555562c592d0, arg=0x7fffffff87e0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:152
#6  0x0000555555d74337 in QtPrivate::FunctionPointer<void (Avatar::*)()>::call<QtPrivate::List<>, void>(void (Avatar::*)(), Avatar*, void**) (f=(void (Avatar::*)(Avatar * const)) 0x7ffff7cb4bc2 <Avatar::rigReady()>, o=0x555562c592d0, arg=0x7fffffff87e0)
    at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:185
#7  0x0000555555d6d7d6 in QtPrivate::QSlotObject<void (Avatar::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555562c5bf20, r=0x555562c592d0, a=0x7fffffff87e0, ret=0x0) at /home/motofckr9k/Vircadia/qt5-install/include/QtCore/qobjectdefs_impl.h:414
#8  0x00007fffe5a2066f in QtPrivate::QSlotObjectBase::call (a=0x7fffffff87e0, r=0x555562c592d0, this=0x555562c5bf20) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
#9  QMetaObject::activate (sender=0x555562c8dc70, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at /home/nissim/qt5/qtbase/src/corelib/kernel/qobject.cpp:3776
#10 0x00007ffff4da70df in Model::rigReady (this=0x555562c8dc70) at /home/motofckr9k/Vircadia/build/libraries/render-utils/render-utils_autogen/UVLADIE3JM/moc_Model.cpp:231
#11 0x00007ffff4c3a244 in Model::updateGeometry (this=0x555562c8dc70) at /home/motofckr9k/Vircadia/source/libraries/render-utils/src/Model.cpp:321
#12 0x00007ffff4b654c7 in CauterizedModel::updateGeometry (this=0x555562c8dc70) at /home/motofckr9k/Vircadia/source/libraries/render-utils/src/CauterizedModel.cpp:32
#13 0x00007ffff4c42dcf in Model::simulate (this=0x555562c8dc70, deltaTime=0.0335058719, fullUpdate=true) at /home/motofckr9k/Vircadia/source/libraries/render-utils/src/Model.cpp:1426
#14 0x00007ffff7d08ca9 in SkeletonModel::simulate (this=0x555562c8dc70, deltaTime=0.0335058719, fullUpdate=true) at /home/motofckr9k/Vircadia/source/libraries/avatars-renderer/src/avatars-renderer/SkeletonModel.cpp:161
#15 0x0000555555d1e543 in MyAvatar::simulate (this=0x555562c592d0, deltaTime=0.0335058719, inView=true) at /home/motofckr9k/Vircadia/source/interface/src/avatar/MyAvatar.cpp:928
#16 0x0000555555d1d50d in MyAvatar::update (this=0x555562c592d0, deltaTime=0.0335058719) at /home/motofckr9k/Vircadia/source/interface/src/avatar/MyAvatar.cpp:774
#17 0x0000555555cd178b in AvatarManager::updateMyAvatar (this=0x555562c9b620, deltaTime=0.0335058719) at /home/motofckr9k/Vircadia/source/interface/src/avatar/AvatarManager.cpp:167
#18 0x0000555555afeecf in Application::update (this=0x7fffffffad70, deltaTime=0.0335058719) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:6683
#19 0x0000555555af3552 in Application::idle (this=0x7fffffffad70) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:5328
#20 0x0000555555aee8d5 in Application::event (this=0x7fffffffad70, event=0x7ffed8578cc0) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:4264
#21 0x00007fffea182c8c in QApplicationPrivate::notify_helper (this=this@entry=0x5555608c87d0, receiver=receiver@entry=0x7fffffffad70, e=e@entry=0x7ffed8578cc0) at /home/nissim/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3736
#22 0x00007fffea18a1e0 in QApplication::notify (this=0x7fffffffad70, receiver=0x7fffffffad70, e=0x7ffed8578cc0) at /home/nissim/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3483
#23 0x0000555555aee6cf in Application::notify (this=0x7fffffffad70, object=0x7fffffffad70, event=0x7ffed8578cc0) at /home/motofckr9k/Vircadia/source/interface/src/Application.cpp:4234
#24 0x00007fffe59f06d8 in QCoreApplication::notifyInternal2 (receiver=0x7fffffffad70, event=0x7ffed8578cc0) at /home/nissim/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1060
#25 0x00007fffe59f08ae in QCoreApplication::sendEvent (receiver=<optimized out>, event=event@entry=0x7ffed8578cc0) at /home/nissim/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1450
#26 0x00007fffe59f3277 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x555560357010) at /home/nissim/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1799
#27 0x00007fffe59f3818 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at /home/nissim/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1653
#28 0x00007fffe5a4e333 in postEventSourceDispatch (s=0x555560b18c00) at /home/nissim/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:276
#29 0x00007fffdaf97417 in g_main_context_dispatch () from /tmp/.mount_VircadBfmIDT/vircadia/interface/../../qt5-install/lib/../../usr/lib64/libglib-2.0.so.0
#30 0x00007fffdaf97650 in ?? () from /tmp/.mount_VircadBfmIDT/vircadia/interface/../../qt5-install/lib/../../usr/lib64/libglib-2.0.so.0
#31 0x00007fffdaf976dc in g_main_context_iteration () from /tmp/.mount_VircadBfmIDT/vircadia/interface/../../qt5-install/lib/../../usr/lib64/libglib-2.0.so.0
#32 0x00007fffe5a4d93f in QEventDispatcherGlib::processEvents (this=0x555560b18c80, flags=...) at /home/nissim/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:422
#33 0x00007fffe59ee9fa in QEventLoop::exec (this=this@entry=0x7fffffffaaf0, flags=..., flags@entry=...) at /home/nissim/qt5/qtbase/src/corelib/kernel/qeventloop.cpp:225
#34 0x00007fffe59f7b40 in QCoreApplication::exec () at /home/nissim/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1363
#35 0x0000555555e0a2c3 in main (argc=1, argv=0x7fffffffdb18) at /home/motofckr9k/Vircadia/source/interface/src/main.cpp:448
(gdb) 

JulianGro avatar Feb 04 '21 17:02 JulianGro

Probably fixed by https://github.com/vircadia/vircadia/pull/1326 because it appears to be the same crash.

ctrlaltdavid avatar Aug 30 '21 21:08 ctrlaltdavid

This is still an issue. See the crash report on Sentry: https://sentry.vircadia.dev/organizations/vircadia/issues/468/events/c2dcd6bce13743b6a0a3cc99d7042117/

JulianGro avatar Sep 09 '21 02:09 JulianGro

Hello! Is this still an issue?

stale[bot] avatar Mar 08 '22 04:03 stale[bot]

Just tested.

[03/10 23:54:32] [WARNING] [hifi.avatars.rendering] Bad head joint! Got: -1 jointCount: 1505
double free or corruption (!prev)

Probably still a thing.

daleglass avatar Mar 10 '22 22:03 daleglass

Interesting, my backtrace is quite different:

(gdb) bt
#0  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:589
#1  0x00007ffff418c0a9 in memcpy (__len=1744207308, __src=<optimized out>, __dest=<optimized out>)
    at /usr/include/bits/string_fortified.h:29
#2  QString::reallocData(unsigned int, bool) (this=0x7fffffff8fb8, alloc=<optimized out>, grow=<optimized out>)
    at text/qstring.cpp:2369
#3  0x00007ffff418c636 in QString::append(QString const&) (this=this@entry=0x7fffffff8fb8, str=...) at text/qstring.cpp:2684
#4  0x00007ffff563085b in QString::operator+=(QString const&) (s=..., this=0x7fffffff8fb8)
    at /usr/include/qt5/QtCore/qstring.h:569
#5  operator() (__closure=<optimized out>)
    at /home/dale/git/vircadia/vircadia-master/libraries/avatars/src/AvatarData.cpp:2125
#6  ReadWriteLockable::withReadLock<AvatarData::packSkeletonData() const::<lambda()> > (f=<optimized out>, this=0x3c3e5b8)
    at /home/dale/git/vircadia/vircadia-master/libraries/shared/src/shared/ReadWriteLockable.h:109
#7  AvatarData::packSkeletonData() const (this=0x3c3de80)
    at /home/dale/git/vircadia/vircadia-master/libraries/avatars/src/AvatarData.cpp:2091
#8  0x00007ffff5630acd in AvatarData::packTrait(AvatarTraits::TraitType) const
    (this=<optimized out>, traitType=traitType@entry=AvatarTraits::SkeletonData)
    at /home/dale/git/vircadia/vircadia-master/libraries/avatars/src/AvatarData.cpp:2215
#9  0x00007ffff5656aea in AvatarTraits::packTrait(AvatarTraits::TraitType, ExtendedIODevice&, AvatarData const&)
    (traitType=traitType@entry=AvatarTraits::SkeletonData, destination=..., avatar=<optimized out>)
    at /home/dale/git/vircadia/vircadia-master/libraries/avatars/src/AvatarTraits.cpp:22
#10 0x00007ffff5658dc9 in ClientTraitsHandler::sendChangedTraitsToMixer() (this=0x3bfd040)
    at /usr/include/c++/11/bits/unique_ptr.h:173
#11 0x00000000008c8298 in MyAvatar::sendAvatarDataPacket(bool) (this=0x3c3de80, sendAll=<optimized out>)
    at /usr/include/c++/11/bits/unique_ptr.h:173
#12 0x0000000000877482 in AvatarManager::updateMyAvatar(float) (this=0x3c49a50, deltaTime=deltaTime@entry=0.0230875723)
    at /home/dale/git/vircadia/vircadia-master/interface/src/avatar/AvatarManager.cpp:178
#13 0x00000000007be78d in Application::update(float) (this=0x7fffffffadf0, deltaTime=0.0230875723)
    at /usr/include/qt5/QtCore/qsharedpointer_impl.h:301
#14 0x00000000007c1601 in Application::idle() (this=0x7fffffffadf0)
    at /home/dale/git/vircadia/vircadia-master/interface/src/Application.cpp:5370
#15 0x00000000007d2254 in Application::event(QEvent*) (this=0x7fffffffadf0, event=0x7ffeec42fcb0)
    at /home/dale/git/vircadia/vircadia-master/interface/src/Application.cpp:4305
#16 0x00007ffff4f97443 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=this@entry=0x152cb10, receiver=receiver@entry=0x7fffffffadf0, e=e@entry=0x7ffeec42fcb0)
    at kernel/qapplication.cpp:3632
#17 0x00007ffff4f9e8a8 in QApplication::notify(QObject*, QEvent*)
    (this=this@entry=0x7fffffffadf0, receiver=receiver@entry=0x7fffffffadf0, e=e@entry=0x7ffeec42fcb0)
    at kernel/qapplication.cpp:3378
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00000000007d2170 in Application::notify(QObject*, QEvent*)
    (this=0x7fffffffadf0, object=0x7fffffffadf0, event=0x7ffeec42fcb0)
    at /home/dale/git/vircadia/vircadia-master/interface/src/Application.cpp:4275
#19 0x00007ffff42c17d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fffffffadf0, event=0x7ffeec42fcb0)
    at kernel/qcoreapplication.cpp:1064
#20 0x00007ffff42c4d46 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
    (receiver=0x0, event_type=0, data=0x1065b10) at kernel/qcoreapplication.cpp:1821
#21 0x00007ffff4313117 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x17c5ba0)
    at kernel/qeventdispatcher_glib.cpp:277
#22 0x00007fffe6695130 in g_main_dispatch (context=0x1672040) at ../glib/gmain.c:3381
#23 g_main_context_dispatch (context=0x1672040) at ../glib/gmain.c:4099
#24 0x00007fffe66ea208 in g_main_context_iterate.constprop.0
    (context=context@entry=0x1672040, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../glib/gmain.c:4175
#25 0x00007fffe6692933 in g_main_context_iteration (context=0x1672040, may_block=1) at ../glib/gmain.c:4240
#26 0x00007ffff4312bb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=
    0x17be9e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007ffff42c01e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffaae0, flags=..., 
    flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007ffff42c8724 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007ffff1dafc40 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1860
#30 0x00007ffff4f973b9 in QApplication::exec() () at kernel/qapplication.cpp:2824
#31 0x0000000000644f0d in main(int, char const**) (argc=<optimized out>, argv=<optimized out>)
    at /home/dale/git/vircadia/vircadia-master/interface/src/main.cpp:446

daleglass avatar Mar 10 '22 23:03 daleglass

Hello! Is this still an issue?

stale[bot] avatar Sep 07 '22 23:09 stale[bot]