Skip to content

Fatal Assert in answering invite to a group chat voice session #2346

@roxanneskelly

Description

@roxanneskelly

Environment

Atlasaurus developer build. OSX only.

Description

Starting a group voice call results in a Fatal Error assert.
On first glance, this appears to be due to a signal into the UI code from a non-main coro, and there's an assert farther down when memory is being freed that it runs on the main coro.

Thread 1 Queue : com.apple.main-thread (serial)
#0 0x000000010186cff4 in LLMutex::lock()::$_0::__invoke(int*) [inlined] at /Users/roxie/git/viewer/indra/llcommon/llmutex.cpp:58
#1 0x000000010186cff4 in LLMutex::lock()::$_0::__invoke(int*) at /Users/roxie/git/viewer/indra/llcommon/llmutex.cpp:58
#2 0x000000010186c042 in LLMutex::lock at /Users/roxie/git/viewer/indra/llcommon/llmutex.cpp:58
#3 0x000000010147e6eb in LLImageGLMemory::free_tex_image at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:86
#4 0x0000000101485844 in LLImageGL::setManualImage [inlined] at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:114
#5 0x0000000101485824 in LLImageGL::setManualImage at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:1484
#6 0x00000001014841f1 in LLImageGL::setImage at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:1007
#7 0x0000000101488696 in LLImageGL::createGLTexture at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:1721
#8 0x0000000101481b6d in LLImageGL::createGLTexture at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:1647
#9 0x0000000101482ee4 in LLImageGL::LLImageGL at /Users/roxie/git/viewer/indra/llrender/llimagegl.cpp:481
#10 0x000000010143de4f in LLFontBitmapCache::nextOpenPos at /Users/roxie/git/viewer/indra/llrender/llfontbitmapcache.cpp:120
#11 0x000000010143ef53 in LLFontFreetype::addGlyphFromFont at /Users/roxie/git/viewer/indra/llrender/llfontfreetype.cpp:576
#12 0x000000010143ee42 in LLFontFreetype::loadFace at /Users/roxie/git/viewer/indra/llrender/llfontfreetype.cpp:265
#13 0x000000010145a84b in LLFontRegistry::createFont at /Users/roxie/git/viewer/indra/llrender/llfontregistry.cpp:520
#14 0x000000010145bb64 in LLFontRegistry::getFont at /Users/roxie/git/viewer/indra/llrender/llfontregistry.cpp:609
#15 0x000000010169a21e in LLInitParam::ParamValue<LLFontGL const*, LLInitParam::NOT_BLOCK>::updateValueFromBlock at /Users/roxie/git/viewer/indra/llui/llui.cpp:582
#16 0x00000001016324dc in LLStyle::LLStyle [inlined] at /Users/roxie/git/viewer/indra/llcommon/llinitparam.h:2751
#17 0x00000001016324b8 in LLStyle::LLStyle [inlined] at /Users/roxie/git/viewer/indra/llcommon/llinitparam.h:2789
#18 0x00000001016324b8 in LLStyle::LLStyle [inlined] at /Users/roxie/git/viewer/indra/llcommon/llinitparam.h:290
#19 0x00000001016324b8 in LLStyle::LLStyle at /Users/roxie/git/viewer/indra/llui/llstyle.cpp:53
#20 0x00000001016505dc in LLTextBase::appendAndHighlightTextImpl at /Users/roxie/git/viewer/indra/llui/lltextbase.cpp:2433
#21 0x0000000101650166 in LLTextBase::appendAndHighlightText at /Users/roxie/git/viewer/indra/llui/lltextbase.cpp:2516
#22 0x000000010164f2b4 in LLTextBase::appendTextImpl at /Users/roxie/git/viewer/indra/llui/lltextbase.cpp:2287
#23 0x000000010024b4b3 in LLChatHistory::appendMessage at /Users/roxie/git/viewer/indra/newview/llchathistory.cpp:1526
#24 0x00000001004dd99d in LLFloaterIMSessionTab::appendMessage at /Users/roxie/git/viewer/indra/newview/llfloaterimsessiontab.cpp:593
#25 0x00000001004bf388 in LLFloaterIMNearbyChat::addMessage at /Users/roxie/git/viewer/indra/newview/llfloaterimnearbychat.cpp:639
#26 0x00000001004bee07 in LLFloaterIMNearbyChat::loadHistory at /Users/roxie/git/viewer/indra/newview/llfloaterimnearbychat.cpp:256
#27 0x00000001004bdf3b in LLFloaterIMNearbyChat::postBuild at /Users/roxie/git/viewer/indra/newview/llfloaterimnearbychat.cpp:145
#28 0x000000010151f4bc in LLFloater::initFloaterXML at /Users/roxie/git/viewer/indra/llui/llfloater.cpp:3480
#29 0x000000010151ff01 in LLFloater::buildFromFile at /Users/roxie/git/viewer/indra/llui/llfloater.cpp:3557
#30 0x00000001015256ee in LLFloaterReg::getInstance at /Users/roxie/git/viewer/indra/llui/llfloaterreg.cpp:164
#31 0x0000000101527259 in LLFloaterReg::toggleInstanceOrBringToFront at /Users/roxie/git/viewer/indra/llui/llfloaterreg.cpp:480
#32 0x00000001004b6551 in LLFloaterIMContainer::setVisible at /Users/roxie/git/viewer/indra/newview/llfloaterimcontainer.cpp:757
#33 0x000000010151ad36 in LLFloater::setVisibleAndFrontmost ()
#34 0x00000001004b6ac4 in LLFloaterIMContainer::setVisibleAndFrontmost at /Users/roxie/git/viewer/indra/newview/llfloaterimcontainer.cpp:828
#35 0x00000001004b154d in LLFloaterIMContainer::showConversation at /Users/roxie/git/viewer/indra/newview/llfloaterimcontainer.cpp:1670
#36 0x00000001004d5540 in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, LLUUID const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>::dereference [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/function/function_template.hpp:771
#37 0x00000001004d5535 in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, LLUUID const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>::dereference [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/variadic_slot_invoker.hpp:105
#38 0x00000001004d5525 in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, LLUUID const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>::dereference [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/variadic_slot_invoker.hpp:90
#39 0x00000001004d5525 in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, LLUUID const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>::dereference [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/variadic_slot_invoker.hpp:133
#40 0x00000001004d551d in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, LLUUID const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional>, boost::signals2::slot<void (LLUUID const&), boost::function<void (LLUUID const&)>>, boost::signals2::mutex>>::dereference at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/slot_call_iterator.hpp:110
#41 0x00000001004d5321 in boost::signals2::detail::signal_impl<void (LLUUID const&), boost::signals2::optional_last_value, int, std::__1::less, boost::function<void (LLUUID const&)>, boost::function<void (boost::signals2::connection const&, LLUUID const&)>, boost::signals2::mutex>::operator() [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/iterator/iterator_facade.hpp:631
#42 0x00000001004d5319 in boost::signals2::detail::signal_impl<void (LLUUID const&), boost::signals2::optional_last_value, int, std::__1::less, boost::function<void (LLUUID const&)>, boost::function<void (boost::signals2::connection const&, LLUUID const&)>, boost::signals2::mutex>::operator() [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/iterator/iterator_facade.hpp:737
#43 0x00000001004d5319 in boost::signals2::detail::signal_impl<void (LLUUID const&), boost::signals2::optional_last_value, int, std::__1::less, boost::function<void (LLUUID const&)>, boost::function<void (boost::signals2::connection const&, LLUUID const&)>, boost::signals2::mutex>::operator() [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/optional_last_value.hpp:57
#44 0x00000001004d52f7 in boost::signals2::detail::signal_impl<void (LLUUID const&), boost::signals2::optional_last_value, int, std::__1::less, boost::function<void (LLUUID const&)>, boost::function<void (boost::signals2::connection const&, LLUUID const&)>, boost::signals2::mutex>::operator() [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/result_type_wrapper.hpp:64
#45 0x00000001004d52d4 in boost::signals2::detail::signal_impl<void (LLUUID const&), boost::signals2::optional_last_value, int, std::__1::less, boost::function<void (LLUUID const&)>, boost::function<void (boost::signals2::connection const&, LLUUID const&)>, boost::signals2::mutex>::operator() at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/signal_template.hpp:242
#46 0x00000001010b308c in LLVoiceChannelGroup::activate [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/signals2/detail/signal_template.hpp:722
#47 0x00000001010b3080 in LLVoiceChannelGroup::activate [inlined] at /Users/roxie/git/viewer/indra/newview/llvoicechannel.cpp:268
#48 0x00000001010b3030 in LLVoiceChannelGroup::activate at /Users/roxie/git/viewer/indra/newview/llvoicechannel.cpp:421
#49 0x00000001007156eb in LLIMMgr::startCall at /Users/roxie/git/viewer/indra/newview/llimview.cpp:3868
#50 0x0000000100714c1a in chatterBoxInvitationCoro at /Users/roxie/git/viewer/indra/newview/llimview.cpp:570
#51 0x0000000100739706 in boost::_bi::bind_t<void, void ()(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator>, LLUUID, LLIMMgr::EInvitationType, LLSD const&), boost::_bi::list4<boost::_bi::value<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator>>, boost::_bi::value, boost::_bi::valueLLIMMgr::EInvitationType, boost::_bi::value>>::operator() [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/bind/bind.hpp:443
#52 0x00000001007396cb in boost::_bi::bind_t<void, void (
)(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator>, LLUUID, LLIMMgr::EInvitationType, LLSD const&), boost::_bi::list4<boost::_bi::value<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator>>, boost::_bi::value, boost::_bi::valueLLIMMgr::EInvitationType, boost::_bi::value>>::operator() at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/bind/bind.hpp:1274
#53 0x0000000101815b2a in LLCoros::toplevel [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/function/function_template.hpp:771
#54 0x0000000101815b14 in LLCoros::toplevel [inlined] at /Users/roxie/git/viewer/indra/llcommon/llcoros.cpp:348
#55 0x0000000101815b14 in LLCoros::toplevel at /Users/roxie/git/viewer/indra/llcommon/llcoros.cpp:368
#56 0x0000000101817da2 in boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$0>::run [inlined] at /Users/roxie/git/viewer/indra/llcommon/llcoros.cpp:288
#57 0x0000000101817d2a in boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$0>::run [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__type_traits/invoke.h:344
#58 0x0000000101817d2a in boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$0>::run [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/tuple:1424
#59 0x0000000101817d2a in boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$0>::run [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/tuple:1428
#60 0x0000000101817d2a in boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$0>::run at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/fiber/context.hpp:450
#61 0x0000000101817ecd in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__type_traits/invoke.h:312
#62 0x0000000101817eab in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__functional/bind.h:195
#63 0x0000000101817eab in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__functional/bind.h:222
#64 0x0000000101817eab in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__type_traits/invoke.h:344
#65 0x0000000101817eab in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/usr/include/c++/v1/__functional/invoke.h:28
#66 0x0000000101817eab in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> [inlined] at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/context/fiber_fcontext.hpp:157
#67 0x0000000101817ea7 in boost::context::detail::fiber_entry<boost::context::detail::fiber_record<boost::context::fiber, boost::context::basic_protected_fixedsize_stackboost::context::stack_traits, std::__1::__bind<boost::context::fiber (boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>::)(boost::context::fiber&&), boost::fibers::worker_context<LLCoros::launch(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator> const&, boost::function<void ()> const&)::$_0>, std::__1::placeholders::__ph<1> const&>>> at /Users/roxie/git/viewer/build-darwin-x86_64/packages/include/boost/context/fiber_fcontext.hpp:97
#68 0x0000000101f5c82f in trampoline at /Users/runner/work/3p-boost/3p-boost/boost/libs/context/src/asm/make_x86_64_sysv_macho_gas.S:69

Reproduction steps

  1. Log in to a webrtc region with a windows machine on user A
  2. Log in to a webrtc region with a mac machine on user B.
  3. Make sure both users are part of the same group.
  4. From user A, find the group in the group list and use the context menu to select "Voice call"
  5. User B should see an invite to join the voice call. Select the option to join.
  6. Observe: the assert appears.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingtriageFlags issues that need to be triaged

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions