Hi everyone,

A user reported that LibreOffice 24.2.7 always crashes on the Mac:

https://old.reddit.com/r/libreoffice/comments/1ggi4sc/libreoffice_2427_is_now_available_the_last/luvd3iw/

I have found the same crash happening on all of my Silicon Mac machines running 
Sonoma and Sequoia. Installing the Intel installation on my Silicon Mac 
machines and running with Rosetta 2 doesn’t crash, only the Silicon Mac 
installation crashes.

This crashing looks like it will affect most Silicon Mac users. Not sure if it 
will affect Mac App Store users as the Mac App Store is still stuck at 
LibreOffice 24.2.5 but it is probably prudent to assume that this same crash 
will happen for Mac App Store builds as well.

So I checked out commit 60d4b3fb5e3fa9db8a102b04aa0025f2052bc02d and did clean 
release and codesigned builds on the following two platforms but I am unable to 
reproduce the bug in either of my local builds:

- macOS Sonoma 14.7.1 with Xcode 15.4
- macOS Sequoia 15.1 with Xcode 16.1

I used the following options in my autogen.input:

--with-hamcrest=/opt/hamcrest/hamcrest-2.2.jar
--with-myspell-dicts
--with-lang=de fr ja
--enable-release-build
--enable-online-update
--with-privacy-policy-url=http://blah.com
--with-package-format=dmg
--enable-macosx-code-signing

So is TDF release engineering using any different autogen.input options or 
using different macOS and/or Xcode versions that me? If yes, I can do a rebuild 
and see if I can reproduce the crash. If no, does anyone have any ideas what 
might be different between my builds and TDF’s?

Debug data:

I was able to recodesign the LibreOffice 24.2.7 download and add the necessary 
entitlement so that I connect lldb. I got a backtrace (see attached lldb_bt.txt 
file) and it seems to me that the crash is occurring when 
VCLXMenu::addMenuListener() calls std::unique_lock aGuard( maMutex ) which 
calls std::mutex::lock().

In the official Silicon Mac installation that crashes, pthread_mutex_lock() is 
passed a garbage address. It’s always 0x40 so I am guessing that is a data 
member of some parent class that std::mutex holds and that parent instance is a 
nullptr. It’s as if std::mutex is failing to fully initialize itself but only 
in this one official installer. 

Any theories or ideas welcome.

Patrick


(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS 
(code=1, address=0x40)
  * frame #0: 0x000000018fa498e0 libsystem_pthread.dylib`pthread_mutex_lock + 12
    frame #1: 0x000000018f986758 libc++.1.dylib`std::__1::mutex::lock() + 16
    frame #2: 0x0000000102eecfb0 
libtklo.dylib`VCLXMenu::addMenuListener(com::sun::star::uno::Reference<com::sun::star::awt::XMenuListener>
 const&) + 36
    frame #3: 0x00000001019bce9c 
libsvtlo.dylib`svt::PopupMenuControllerBase::setPopupMenu(com::sun::star::uno::Reference<com::sun::star::awt::XPopupMenu>
 const&) + 320
    frame #4: 0x000000010134ade4 
libfwklo.dylib`framework::MenuBarManager::CreatePopupMenuController(framework::MenuBarManager::MenuItemHandler*,
 com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> 
const&, rtl::OUString const&) + 1236
    frame #5: 0x00000001013462ac 
libfwklo.dylib`framework::MenuBarManager::FillMenuManager(Menu*, 
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, 
com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> 
const&, rtl::OUString const&, bool) + 2472
    frame #6: 0x00000001013469cc 
libfwklo.dylib`framework::MenuBarManager::MenuBarManager(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
 const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, 
com::sun::star::uno::Reference<com::sun::star::util::XURLTransformer> const&, 
com::sun::star::uno::Reference<com::sun::star::frame::XDispatchProvider> 
const&, rtl::OUString const&, Menu*, bool, bool) + 404
    frame #7: 0x0000000101351e98 
libfwklo.dylib`framework::MenuBarWrapper::initialize(com::sun::star::uno::Sequence<com::sun::star::uno::Any>
 const&) + 828
    frame #8: 0x00000001013adaf4 
libfwklo.dylib`framework::MenuBarFactory::CreateUIElement(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, 
std::__1::basic_string_view<char16_t, std::__1::char_traits<char16_t>>, 
com::sun::star::uno::Reference<com::sun::star::ui::XUIElement> const&, 
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) 
+ 2100
    frame #9: 0x00000001013ad218 
libfwklo.dylib`framework::MenuBarFactory::createUIElement(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) + 
204
    frame #10: 0x00000001013b35b0 libfwklo.dylib`(anonymous 
namespace)::UIElementFactoryManager::createUIElement(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) + 
508
    frame #11: 0x0000000101293428 
libfwklo.dylib`framework::LayoutManager::implts_createElement(rtl::OUString 
const&) + 288
    frame #12: 0x000000010129250c 
libfwklo.dylib`framework::LayoutManager::implts_createMenuBar(rtl::OUString 
const&) + 232
    frame #13: 0x000000010129b200 
libfwklo.dylib`framework::LayoutManager::createElement(rtl::OUString const&) + 
476
    frame #14: 0x0000000101c91c78 libsfxlo.dylib`SfxDispatcher::SetMenu_Impl() 
+ 400
    frame #15: 0x0000000101c903a4 
libsfxlo.dylib`SfxDispatcher::Update_Impl(bool) + 696
    frame #16: 0x0000000101ed2cf0 
libsfxlo.dylib`SfxBaseController::ConnectSfxFrame_Impl(SfxBaseController::ConnectSfxFrame)
 + 1268
    frame #17: 0x0000000101ed25e0 
libsfxlo.dylib`SfxBaseController::attachFrame(com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
 const&) + 572
    frame #18: 0x0000000101ec18d8 
libsfxlo.dylib`utl::ConnectFrameControllerModel(com::sun::star::uno::Reference<com::sun::star::frame::XFrame>
 const&, com::sun::star::uno::Reference<com::sun::star::frame::XController2> 
const&, com::sun::star::uno::Reference<com::sun::star::frame::XModel> const&) + 
292
    frame #19: 0x0000000101ebeef4 libsfxlo.dylib`(anonymous 
namespace)::SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
 const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) 
+ 7436
    frame #20: 0x00000001012c2224 
libfwklo.dylib`framework::LoadEnv::impl_loadContent() + 2964
    frame #21: 0x00000001012bf504 libfwklo.dylib`framework::LoadEnv::start() + 
136
    frame #22: 0x00000001012bdfe4 
libfwklo.dylib`framework::LoadEnv::startLoading(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, 
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, 
rtl::OUString const&, int, LoadEnvFeatures) + 1312
    frame #23: 0x0000000101214ed4 
libfwklo.dylib`framework::LoadDispatcher::impl_dispatch(com::sun::star::util::URL
 const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> 
const&, 
com::sun::star::uno::Reference<com::sun::star::frame::XDispatchResultListener> 
const&) + 748
    frame #24: 0x00000001012153ec libfwklo.dylib`non-virtual thunk to 
framework::LoadDispatcher::dispatch(com::sun::star::util::URL const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) + 48
    frame #25: 0x0000000101bfc40c libsfxlo.dylib`implDispatchDelayed(void*, 
void*) + 40
    frame #26: 0x0000000104b12cf4 
libvcllo.dylib`ImplHandleUserEvent(ImplSVEvent*) + 48
    frame #27: 0x0000000104b10de8 
libvcllo.dylib`ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) + 532
    frame #28: 0x00000001069caf40 libvclplug_osxlo.dylib`non-virtual thunk to 
AquaSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) + 44
    frame #29: 0x0000000104daad6c 
libvcllo.dylib`SalUserEventList::DispatchUserEvents(bool) + 720
    frame #30: 0x00000001069cb560 
libvclplug_osxlo.dylib`AquaSalInstance::DoYield(bool, bool) + 388
    frame #31: 0x0000000104df19e8 libvcllo.dylib`Application::Yield() + 96
    frame #32: 0x0000000104df1964 libvcllo.dylib`Application::Execute() + 176
    frame #33: 0x0000000100258498 libsofficeapp.dylib`desktop::Desktop::Main() 
+ 2632
    frame #34: 0x0000000104df91ec libvcllo.dylib`ImplSVMain() + 392
    frame #35: 0x00000001069cafe0 
libvclplug_osxlo.dylib`AquaSalInstance::handleAppDefinedEvent(NSEvent*) + 96
    frame #36: 0x00000001069fe080 libvclplug_osxlo.dylib`-[VCL_NSApplication 
sendEvent:] + 92
    frame #37: 0x0000000193bac89c AppKit`-[NSApplication _handleEvent:] + 60
    frame #38: 0x0000000193652b08 AppKit`-[NSApplication run] + 520
    frame #39: 0x0000000193629364 AppKit`NSApplicationMain + 888
    frame #40: 0x00000001069cd010 
libvclplug_osxlo.dylib`AquaSalInstance::SVMainHook(int*) + 152
    frame #41: 0x0000000104df91c8 libvcllo.dylib`ImplSVMain() + 356
    frame #42: 0x00000001002821fc libsofficeapp.dylib`soffice_main + 216
    frame #43: 0x0000000100003f40 soffice`main + 20
    frame #44: 0x000000018f6cc274 dyld`start + 2840

Reply via email to