<html>
    <head>
      <base href="https://bugs.documentfoundation.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - Cannot link to macOS address book - crashes and restarts"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=126961#c55">Comment # 55</a>
              on <a class="bz_bug_link 
          bz_status_REOPENED "
   title="REOPENED - Cannot link to macOS address book - crashes and restarts"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=126961">bug 126961</a>
              from <span class="vcard"><a class="email" href="mailto:sbergman@redhat.com" title="Stephan Bergmann <sbergman@redhat.com>"> <span class="fn">Stephan Bergmann</span></a>
</span></b>
        <pre>Trying that out with a recent local master build on macOS 11.5.2, it crashes at

<span class="quote">> * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSEGV
>     frame #0: 0x0000000193c4a4f0 CoreFoundation`CFArrayGetCount + 16
> CoreFoundation`CFArrayGetCount:
> ->  0x193c4a4f0 <+16>: ldr    x9, [x0]
>     0x193c4a4f4 <+20>: adrp   x10, 389043
>     0x193c4a4f8 <+24>: ldr    x10, [x10, #0x38]
>     0x193c4a4fc <+28>: bic    x8, x9, x10
> Target 0: (soffice) stopped.
> (lldb) bt
> error: common.a(keywords.o) failed to load objfile for ~/lo/core/workdir/UnpackedTarball/firebird/temp/Debug/common.a
> * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSEGV
>   * frame #0: 0x0000000193c4a4f0 CoreFoundation`CFArrayGetCount + 16
>     frame #1: 0x000000029ec857d0 libmacabdrv1.dylib`connectivity::macab::MacabRecords::initialize(this=0x00000002dc5c9ff0) at ~/lo/core/connectivity/source/drivers/macab/MacabRecords.cxx:146:42
>     frame #2: 0x000000029ec9044c libmacabdrv1.dylib`connectivity::macab::MacabAddressBook::getMacabRecords(this=0x00000002dff28ca0) at ~/lo/core/connectivity/source/drivers/macab/MacabAddressBook.cxx:123:26
>     frame #3: 0x000000029ec74378 libmacabdrv1.dylib`connectivity::macab::MacabDatabaseMetaData::getTables(this=0x000000016fdfa8d0)::$_2::operator()() const at ~/lo/core/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx:951:67
>     frame #4: 0x000000029ec741a0 libmacabdrv1.dylib`connectivity::macab::MacabDatabaseMetaData::getTables(this=0x000000012e25c3c0, (null)=0x000000016fdfaac0, (null)=0x000000016fdfaab8, (null)=0x000000016fdfaab0, types=0x000000016fdfaae8) at ~/lo/core/connectivity/source/drivers/macab/MacabDatabaseMetaData.cxx:946:54
>     frame #5: 0x00000002fae71afc libdbalo.dylib`dbaccess::OFilteredContainer::construct(this=0x0000000131eeca10, _rTableFilter=0x0000000131eda618, _rTableTypeFilter=0x0000000131eda620) at ~/lo/core/dbaccess/source/core/api/FilteredContainer.cxx:347:60
>     frame #6: 0x00000002fafad56c libdbalo.dylib`dbaccess::OConnection::refresh(this=0x0000000131eda4b0, _rToBeRefreshed=0x000000016fdface8) at ~/lo/core/dbaccess/source/core/dataaccess/connection.cxx:534:28
>     frame #7: 0x00000002fafad908 libdbalo.dylib`dbaccess::OConnection::getTables(this=0x0000000131eda4b0) at ~/lo/core/dbaccess/source/core/dataaccess/connection.cxx:560:5
>     frame #8: 0x000000012e706628 libgcc3_uno.dylib`callVirtualFunction(function=12800678340, gpr=0x000000016fdfb068, fpr=0x000000016fdfb028, stack=0x000000016fdfadd0, sp=0, ret=0x000000016fdfadd0) at ~/lo/core/bridges/source/cpp_uno/gcc3_linux_aarch64/callvirtualfunction.cxx:38:5
>     frame #9: 0x000000012e70f430 libgcc3_uno.dylib`(anonymous namespace)::call(proxy=0x00000002dc5e86b0, slot=(offset = 0, index = 3), returnType=0x00000001302390b0, count=0, parameters=0x0000000000000000, returnValue=0x000000016fdfb330, arguments=0x000000016fdfb330, exception=0x000000016fdfb488) at ~/lo/core/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx:293:13
>     frame #10: 0x000000012e70ec5c libgcc3_uno.dylib`::unoInterfaceProxyDispatch(pUnoI=0x00000002dc5e86b0, pMemberDescr=0x000000012e25d170, pReturn=0x000000016fdfb330, pArgs=0x000000016fdfb330, ppException=0x000000016fdfb488) at ~/lo/core/bridges/source/cpp_uno/gcc3_linux_aarch64/uno2cpp.cxx:505:17
>     frame #11: 0x000000029f171c34 libproxyfaclo.dylib`com::sun::star::uno::UnoInterfaceReference::dispatch(this=0x00000002dc5a84e8, pMemberType=0x000000012e25d170, pReturn=0x000000016fdfb330, pArgs=0x000000016fdfb330, ppException=0x000000016fdfb488) const at ~/lo/core/include/uno/dispatcher.hxx:177:5
>     frame #12: 0x000000029f172484 libproxyfaclo.dylib`(anonymous namespace)::binuno_proxy_dispatch(pUnoI=0x00000002dc5a84c0, pMemberType=0x000000012e25d170, pReturn=0x000000016fdfb330, pArgs=0x000000016fdfb330, ppException=0x000000016fdfb488) at ~/lo/core/stoc/source/proxy_factory/proxyfac.cxx:245:24
>     frame #13: 0x000000012e70de84 libgcc3_uno.dylib`(anonymous namespace)::call(proxy=0x00000002dc5ec3b0, description=0x000000016fdfb600, returnType=0x00000001302390b0, count=0, parameters=0x0000000000000000, gpr=0x000000016fdfb670, fpr=0x000000016fdfb6b0, stack=0x000000016fdfb6f0, indirectRet=0x000000016fdfb830) at ~/lo/core/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx:258:5
>     frame #14: 0x000000012e70d49c libgcc3_uno.dylib`::vtableCall(functionIndex=3, vtableOffset=0, gpr=0x000000016fdfb670, fpr=0x000000016fdfb6b0, stack=0x000000016fdfb6f0, indirectRet=0x000000016fdfb830) at ~/lo/core/bridges/source/cpp_uno/gcc3_linux_aarch64/cpp2uno.cxx:431:13
>     frame #15: 0x000000012e720f78 libgcc3_uno.dylib`vtableSlotCall + 96
>     frame #16: 0x00000002f671bc00 libdbulo.dylib`dbaui::OTableTreeListBox::UpdateTableList(this=0x00000002dc5cafc0, _rxConnection=0x000000016fdfbe10) at ~/lo/core/dbaccess/source/ui/control/tabletree.cxx:100:31
>     frame #17: 0x00000002f65d704c libdbulo.dylib`dbaui::OAppDetailPageHelper::createTablesPage(this=0x00000002dc185b98, _xConnection=0x000000016fdfbe10) at ~/lo/core/dbaccess/source/ui/app/AppDetailPageHelper.cxx:525:74
>     frame #18: 0x00000002f65f2878 libdbulo.dylib`dbaui::OApplicationDetailView::impl_createPage(this=0x00000002dd231a00, _eType=E_TABLE, _rxConnection=0x000000016fdfbe10, _rxNonTableElements=0x000000016fdfbc40) at ~/lo/core/dbaccess/source/ui/app/AppDetailView.cxx:257:29
>     frame #19: 0x00000002f65f26c8 libdbulo.dylib`dbaui::OApplicationDetailView::createTablesPage(this=0x00000002dd231a00, _xConnection=0x000000016fdfbe10) at ~/lo/core/dbaccess/source/ui/app/AppDetailView.cxx:233:5
>     frame #20: 0x00000002f658c5d8 libdbulo.dylib`dbaui::OApplicationController::onContainerSelect(this=0x0000000117095a00, _eType=E_TABLE) at ~/lo/core/dbaccess/source/ui/app/AppController.cxx:1627:54
>     frame #21: 0x00000002f660223c libdbulo.dylib`dbaui::OApplicationSwapWindow::onContainerSelected(this=0x00000002dd227a68, _eType=E_TABLE) at ~/lo/core/dbaccess/source/ui/app/AppSwapWindow.cxx:99:52
>     frame #22: 0x00000002f66024a8 libdbulo.dylib`dbaui::OApplicationSwapWindow::OnContainerSelectHdl(this=0x00000002dd227a68, pEntry=0x00000002dc1d5dc0) at ~/lo/core/dbaccess/source/ui/app/AppSwapWindow.cxx:117:9
>     frame #23: 0x00000002f6601eb4 libdbulo.dylib`dbaui::OApplicationSwapWindow::LinkStubOnContainerSelectHdl(instance=0x00000002dd227a68, data=0x00000002dc1d5dc0) at ~/lo/core/dbaccess/source/ui/app/AppSwapWindow.cxx:112:1
>     frame #24: 0x0000000103c87b34 libsfxlo.dylib`Link<ThumbnailViewItem const*, void>::Call(this=0x00000002dd2525f0, data=0x00000002dc1d5dc0) const at ~/lo/core/include/tools/link.hxx:111:45
>     frame #25: 0x0000000103cbfdc0 libsfxlo.dylib`ThumbnailView::SelectItem(this=0x00000002dd252520, nItemId=1) at ~/lo/core/sfx2/source/control/thumbnailview.cxx:1085:20
>     frame #26: 0x00000002f660252c libdbulo.dylib`dbaui::OApplicationSwapWindow::selectContainer(this=0x00000002dd227a68, eType=E_TABLE) at ~/lo/core/dbaccess/source/ui/app/AppSwapWindow.cxx:130:21
>     frame #27: 0x00000002f6606690 libdbulo.dylib`dbaui::OApplicationView::selectContainer(this=0x0000000145915660, _eType=E_TABLE) at ~/lo/core/dbaccess/source/ui/app/AppView.cxx:373:17
>     frame #28: 0x00000002f6594a88 libdbulo.dylib`dbaui::OApplicationController::select(this=0x0000000117095a00, _aSelection=0x000000016fdfc5b8) at ~/lo/core/dbaccess/source/ui/app/AppController.cxx:2800:21
>     frame #29: 0x00000002b0bd09ec libdbaxmllo.dylib`dbaxml::(anonymous namespace)::DBContentLoader::load(this=0x000000012e2534d0, rFrame=0x000000016fdfcb58, _rURL=0x000000016fdfcad0, rArgs=0x000000016fdfcad8, rListener=0x000000016fdfcaa8) at ~/lo/core/dbaccess/source/filter/xml/dbloader2.cxx:477:27
>     frame #30: 0x0000000102476a30 libfwklo.dylib`framework::LoadEnv::impl_loadContent(this=0x000000012e4776d8) at ~/lo/core/framework/source/loadenv/loadenv.cxx:1147:23
>     frame #31: 0x0000000102473bc4 libfwklo.dylib`framework::LoadEnv::start(this=0x000000012e4776d8) at ~/lo/core/framework/source/loadenv/loadenv.cxx:395:20
>     frame #32: 0x0000000102471b74 libfwklo.dylib`framework::LoadEnv::startLoading(this=0x000000012e4776d8, sURL=0x000000012e374ae8, lMediaDescriptor=0x000000012e374b40, xBaseFrame=0x000000016fdfd290, sTarget=0x000000012e4776c8, nSearchFlags=0, eFeature=WorkWithUI | AllowContentHandler) at ~/lo/core/framework/source/loadenv/loadenv.cxx:300:5
>     frame #33: 0x0000000102326f0c libfwklo.dylib`framework::LoadDispatcher::impl_dispatch(this=0x000000012e477680, rURL=0x000000012e374ae8, lArguments=0x000000012e374b40, xListener=0x000000016fdfd568) at ~/lo/core/framework/source/dispatch/loaddispatcher.cxx:106:19
>     frame #34: 0x00000001023279a8 libfwklo.dylib`framework::LoadDispatcher::dispatch(this=0x000000012e477680, aURL=0x000000012e374ae8, lArguments=0x000000012e374b40) at ~/lo/core/framework/source/dispatch/loaddispatcher.cxx:53:5
>     frame #35: 0x0000000108e7ac00 libsvtlo.dylib`svt::PopupMenuControllerBase::ExecuteHdl_Impl((null)=0x0000000000000000, p=0x000000012e374ae0) at ~/lo/core/svtools/source/uno/popupmenucontrollerbase.cxx:156:32
>     frame #36: 0x0000000108e7ab70 libsvtlo.dylib`svt::PopupMenuControllerBase::LinkStubExecuteHdl_Impl(instance=0x0000000000000000, data=0x000000012e374ae0) at ~/lo/core/svtools/source/uno/popupmenucontrollerbase.cxx:153:1
>     frame #37: 0x000000010ae81948 libvcllo.dylib`Link<void*, void>::Call(this=0x000000012e31b398, data=0x000000012e374ae0) const at ~/lo/core/include/tools/link.hxx:111:45
>     frame #38: 0x000000010ae7ea8c libvcllo.dylib`ImplHandleUserEvent(pSVEvent=0x000000012e31b390) at ~/lo/core/vcl/source/window/winproc.cxx:2014:30
>     frame #39: 0x000000010ae7bb9c libvcllo.dylib`ImplWindowFrameProc(_pWindow=0x00000001459adb60, nEvent=UserEvent, pEvent=0x000000012e31b390) at ~/lo/core/vcl/source/window/winproc.cxx:2584:13
>     frame #40: 0x000000012c03cb74 libvclplug_osxlo.dylib`SalFrame::CallCallback(this=0x00000001459ae2f0, nEvent=UserEvent, pEvent=0x000000012e31b390) const at ~/lo/core/vcl/inc/salframe.hxx:306:29
>     frame #41: 0x000000012c051574 libvclplug_osxlo.dylib`AquaSalInstance::ProcessEvent(this=0x0000000116d1bbd0, aEvent=<unavailable>) at ~/lo/core/vcl/osx/salinst.cxx:375:22
>     frame #42: 0x000000010b45b5c8 libvcllo.dylib`SalUserEventList::DispatchUserEvents(this=0x000000016fdfde70)::$_0::operator()() const at ~/lo/core/vcl/source/app/salusereventlist.cxx:119:58
>     frame #43: 0x000000010b45aea8 libvcllo.dylib`SalUserEventList::DispatchUserEvents(this=0x0000000116d1bbd0, bHandleAllCurrentEvents=false) at ~/lo/core/vcl/source/app/salusereventlist.cxx:120:13
>     frame #44: 0x000000012c051f98 libvclplug_osxlo.dylib`AquaSalInstance::DoYield(this=0x0000000116d1bbd0, bWait=true, bHandleAllCurrentEvents=false) at ~/lo/core/vcl/osx/salinst.cxx:513:22
>     frame #45: 0x000000010b50a37c libvcllo.dylib`ImplYield(i_bWait=true, i_bAllEvents=false) at ~/lo/core/vcl/source/app/svapp.cxx:465:48
>     frame #46: 0x000000010b50a094 libvcllo.dylib`Application::Yield() at ~/lo/core/vcl/source/app/svapp.cxx:532:5
>     frame #47: 0x000000010b50a004 libvcllo.dylib`Application::Execute() at ~/lo/core/vcl/source/app/svapp.cxx:444:9
>     frame #48: 0x00000001002d6b38 libsofficeapp.dylib`desktop::Desktop::Main(this=0x000000016fdff788) at ~/lo/core/desktop/source/app/app.cxx:1602:13
>     frame #49: 0x000000010b524880 libvcllo.dylib`ImplSVMain() at ~/lo/core/vcl/source/app/svmain.cxx:199:35
>     frame #50: 0x000000012c0516ac libvclplug_osxlo.dylib`AquaSalInstance::handleAppDefinedEvent(pEvent=0x0000000133aef780) at ~/lo/core/vcl/osx/salinst.cxx:396:20
>     frame #51: 0x000000012c0ce930 libvclplug_osxlo.dylib`-[VCL_NSApplication sendEvent:](self=0x0000000116eab590, _cmd="sendEvent:", pEvent=0x0000000133aef780) at ~/lo/core/vcl/osx/vclnsapp.mm:101:9
>     frame #52: 0x00000001968eb7a8 AppKit`-[NSApplication _handleEvent:] + 76
>     frame #53: 0x000000019648de74 AppKit`-[NSApplication run] + 636
>     frame #54: 0x000000019645f878 AppKit`NSApplicationMain + 1064
>     frame #55: 0x000000012c055854 libvclplug_osxlo.dylib`AquaSalInstance::SVMainHook(this=0x0000000116d1bbd0, pnInit=0x000000016fdff6b8) at ~/lo/core/vcl/osx/salinst.cxx:971:5
>     frame #56: 0x000000010b524840 libvcllo.dylib`ImplSVMain() at ~/lo/core/vcl/source/app/svmain.cxx:192:54
>     frame #57: 0x000000010b525f1c libvcllo.dylib`SVMain() at ~/lo/core/vcl/source/app/svmain.cxx:231:12
>     frame #58: 0x0000000100344f74 libsofficeapp.dylib`soffice_main at ~/lo/core/desktop/source/app/sofficemain.cxx:98:12
>     frame #59: 0x0000000100003f44 soffice`sal_main at ~/lo/core/desktop/source/app/main.c:49:15
>     frame #60: 0x0000000100003f1c soffice`main(argc=1, argv=0x000000016fdff8d0) at ~/lo/core/desktop/source/app/main.c:47:1
>     frame #61: 0x0000000193bcd430 libdyld.dylib`start + 4
> (lldb) f 1
> frame #1: 0x000000029ec857d0 libmacabdrv1.dylib`connectivity::macab::MacabRecords::initialize(this=0x00000002dc5c9ff0) at ~/lo/core/connectivity/source/drivers/macab/MacabRecords.cxx:146:42
>    143     
>    144         ABRecordRef record;
>    145         sal_Int32 i;
> -> 146      recordsSize = static_cast<sal_Int32>(CFArrayGetCount(allRecords));
>    147         records = new MacabRecord *[recordsSize];
>    148     
>    149         /* First, we create the header... */
> (lldb) p allRecords
> (CFArrayRef) $0 = nullptr
> (lldb) p recordType
> (CFStringRef) $1 = 0x00000002031a5108 "ABPerson"</span >

so apparently the call of

<span class="quote">>         allRecords = ABCopyArrayOfAllPeople(addressBook);</span >

in MacabRecords::initialize
(connectivity/source/drivers/macab/MacabRecords.cxx) returned null, which the
code apparently does not expect.

I have no idea about the code in question or the relevant macOS APIs, but I
notice that
<<a href="https://developer.apple.com/documentation/addressbook?language=objc">https://developer.apple.com/documentation/addressbook?language=objc</a>> states
"Important:  Do not use the AddressBook framework in macOS 10.11 and later. 
Use the APIs defined in the Contacts framework instead."</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>