Bug 248705

Summary: editors/libreoffice: 7.0.0.3 crashes at runtime/startup: ASSERT: "object == obj" in file accessible/qaccessiblecache.cpp, line 122
Product: Ports & Packages Reporter: Ashish SHUKLA <ashish>
Component: Individual Port(s)Assignee: FreeBSD Office Team <office>
Status: Closed FIXED    
Severity: Affects Only Me CC: fluffy, grahamperrin, kde, lwhsu
Priority: --- Keywords: crash, needs-qa
Version: LatestFlags: bugzilla: maintainer-feedback? (office)
Hardware: Any   
OS: Any   
URL: https://www.freshports.org/editors/libreoffice/
Attachments:
Description Flags
pkg info | awk '{ print $1; }' none

Description Ashish SHUKLA freebsd_committer freebsd_triage 2020-08-17 17:17:45 UTC
Created attachment 217283 [details]
pkg info | awk '{ print $1; }'

When I start libreoffice using `soffice' on X11, a splash screen shows up, and it dumps core after printing following message:

  ASSERT: "object == obj" in file accessible/qaccessiblecache.cpp, line 122
  Application Error

Following is the backtrace from the coredump:

(lldb) bt
* thread #1, name = 'soffice.bin', stop reason = signal SIGABRT
  * frame #0: 0x00000008005551ba libc.so.7`__sys_thr_kill at thr_kill.S:3
    frame #1: 0x00000008005535e4 libc.so.7`__raise(s=6) at raise.c:52:10
    frame #2: 0x00000008004c77e9 libc.so.7`abort at abort.c:67:8
    frame #3: 0x00000008002a0c9b libuno_sal.so.3`___lldb_unnamed_symbol208$$libuno_sal.so.3 + 747
    frame #4: 0x00000008008e63ce libthr.so.3`handle_signal(actp=0x00007fffffff9e80, sig=6, info=0x00007fffffffa270, ucp=0x00007fffffff9f00) at thr_sig.c:246:3
    frame #5: 0x00000008008e598f libthr.so.3`thr_sighandler(sig=6, info=0x00007fffffffa270, _ucp=0x00007fffffff9f00) at thr_sig.c:191:2
    frame #6: 0x00007ffffffff003
    frame #7: 0x00000008004c77e9 libc.so.7`abort at abort.c:67:8
    frame #8: 0x0000000808528238 libQt5Core.so.5`qt_message_fatal((null)=QtFatalMsg, context=0x00007fffffffa728, message=0x00007fffffffa6f8) at qlogging.cpp:1914:5
    frame #9: 0x000000080852a51e libQt5Core.so.5`QMessageLogger::fatal(this=0x00007fffffffa728, msg="") const at qlogging.cpp:893:5
    frame #10: 0x000000080851d3fa libQt5Core.so.5`qt_assert(assertion="", file="", line=122) at qglobal.cpp:3354:41
    frame #11: 0x0000000808cf469f libQt5Gui.so.5`QAccessibleCache::insert(this=0x000000081da5bf60, object=0x000000082154f4b0, iface=0x000000082299b1c0) const at qaccessiblecache.cpp:122:5
    frame #12: 0x0000000808ceb786 libQt5Gui.so.5`QAccessible::queryAccessibleInterface(object=0x000000082154f4b0) at qaccessible.cpp:691:47
    frame #13: 0x0000000808cec8b2 libQt5Gui.so.5`QAccessibleEvent::accessibleInterface(this=0x00007fffffffaa30) const at qaccessible.cpp:1764:35
    frame #14: 0x0000000808cebde6 libQt5Gui.so.5`QAccessible::updateAccessibility(event=0x00007fffffffaa30) at qaccessible.cpp:862:42
    frame #15: 0x00000008097a388d libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x000000081ecfcb00) at qwidget.cpp:7833:9
    frame #16: 0x00000008097a47ff libQt5Widgets.so.5`QWidgetPrivate::setVisible(this=0x000000081ecfcb00, visible=true) at qwidget.cpp:8121:13
    frame #17: 0x00000008097a43ff libQt5Widgets.so.5`QWidget::setVisible(this=0x000000082154f4b0, visible=true) at qwidget.cpp:8053:8
    frame #18: 0x00000008097a34f9 libQt5Widgets.so.5`QWidget::show(this=0x000000082154f4b0) at qwidget.cpp:7679:9
    frame #19: 0x00000008097a3ade libQt5Widgets.so.5`QWidgetPrivate::showChildren(this=0x000000082152be00, spontaneous=false) at qwidget.cpp:8191:25
    frame #20: 0x00000008097a3679 libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x000000082152be00) at qwidget.cpp:7778:5
    frame #21: 0x00000008097a47ff libQt5Widgets.so.5`QWidgetPrivate::setVisible(this=0x000000082152be00, visible=true) at qwidget.cpp:8121:13
    frame #22: 0x00000008097a43ff libQt5Widgets.so.5`QWidget::setVisible(this=0x0000000821831440, visible=true) at qwidget.cpp:8053:8
    frame #23: 0x0000000808189921 libvclplug_qt5lo.so`Qt5Frame::Show(bool, bool) + 145
    frame #24: 0x0000000803b97ebd libvcllo.so`vcl::Window::Show(bool, ShowFlags) + 1789
    frame #25: 0x0000000803b97b20 libvcllo.so`vcl::Window::Show(bool, ShowFlags) + 864
    frame #26: 0x0000000803af69e6 libvcllo.so`Dialog::ImplStartExecute() + 582
    frame #27: 0x0000000803af704b libvcllo.so`Dialog::Execute() + 43
    frame #28: 0x0000000803e7b864 libvcllo.so`___lldb_unnamed_symbol6344$$libvcllo.so + 52
    frame #29: 0x000000080226e952 libsvxlo.so`___lldb_unnamed_symbol1577$$libsvxlo.so + 18
    frame #30: 0x00000008023b2018 libsvxlo.so`___lldb_unnamed_symbol5164$$libsvxlo.so + 440
    frame #31: 0x00000008023b27d2 libsvxlo.so`___lldb_unnamed_symbol5168$$libsvxlo.so + 18
    frame #32: 0x0000000800300da6 libsofficeapp.so`___lldb_unnamed_symbol19$$libsofficeapp.so + 662
    frame #33: 0x0000000800300aa4 libsofficeapp.so`___lldb_unnamed_symbol18$$libsofficeapp.so + 420
    frame #34: 0x0000000803ebefe6 libvcllo.so`___lldb_unnamed_symbol8244$$libvcllo.so + 246
    frame #35: 0x0000000800272809 libuno_sal.so.3`___lldb_unnamed_symbol51$$libuno_sal.so.3 + 41
    frame #36: 0x00000008002a0a04 libuno_sal.so.3`___lldb_unnamed_symbol208$$libuno_sal.so.3 + 84
    frame #37: 0x00000008008e63ce libthr.so.3`handle_signal(actp=0x00007fffffffb740, sig=6, info=0x00007fffffffbb30, ucp=0x00007fffffffb7c0) at thr_sig.c:246:3
    frame #38: 0x00000008008e598f libthr.so.3`thr_sighandler(sig=6, info=0x00007fffffffbb30, _ucp=0x00007fffffffb7c0) at thr_sig.c:191:2
    frame #39: 0x00007ffffffff003
    frame #40: 0x00000008004c77e9 libc.so.7`abort at abort.c:67:8
    frame #41: 0x0000000808528238 libQt5Core.so.5`qt_message_fatal((null)=QtFatalMsg, context=0x00007fffffffbfd8, message=0x00007fffffffbfa8) at qlogging.cpp:1914:5
    frame #42: 0x000000080852a51e libQt5Core.so.5`QMessageLogger::fatal(this=0x00007fffffffbfd8, msg="") const at qlogging.cpp:893:5
    frame #43: 0x000000080851d3fa libQt5Core.so.5`qt_assert(assertion="", file="", line=122) at qglobal.cpp:3354:41
    frame #44: 0x0000000808cf469f libQt5Gui.so.5`QAccessibleCache::insert(this=0x000000081da5bf60, object=0x000000081d224b40, iface=0x000000082154f380) const at qaccessiblecache.cpp:122:5
    frame #45: 0x0000000808ceb786 libQt5Gui.so.5`QAccessible::queryAccessibleInterface(object=0x000000081d224b40) at qaccessible.cpp:691:47
    frame #46: 0x0000000808cec8b2 libQt5Gui.so.5`QAccessibleEvent::accessibleInterface(this=0x00007fffffffc2e0) const at qaccessible.cpp:1764:35
    frame #47: 0x0000000808cebde6 libQt5Gui.so.5`QAccessible::updateAccessibility(event=0x00007fffffffc2e0) at qaccessible.cpp:862:42
    frame #48: 0x00000008097a388d libQt5Widgets.so.5`QWidgetPrivate::show_helper(this=0x0000000814522780) at qwidget.cpp:7833:9
    frame #49: 0x00000008097a47ff libQt5Widgets.so.5`QWidgetPrivate::setVisible(this=0x0000000814522780, visible=true) at qwidget.cpp:8121:13
    frame #50: 0x00000008097a43ff libQt5Widgets.so.5`QWidget::setVisible(this=0x000000081d224b40, visible=true) at qwidget.cpp:8053:8
    frame #51: 0x0000000808189921 libvclplug_qt5lo.so`Qt5Frame::Show(bool, bool) + 145
    frame #52: 0x0000000803b97ebd libvcllo.so`vcl::Window::Show(bool, ShowFlags) + 1789
    frame #53: 0x0000000803b97b20 libvcllo.so`vcl::Window::Show(bool, ShowFlags) + 864
    frame #54: 0x0000000803af69e6 libvcllo.so`Dialog::ImplStartExecute() + 582
    frame #55: 0x0000000803af704b libvcllo.so`Dialog::Execute() + 43
    frame #56: 0x0000000803e7b864 libvcllo.so`___lldb_unnamed_symbol6344$$libvcllo.so + 52
    frame #57: 0x000000081d8695c2 libscuilo.so`___lldb_unnamed_symbol232$$libscuilo.so + 18
    frame #58: 0x000000081b386f87 libsclo.so`___lldb_unnamed_symbol21032$$libsclo.so + 2199
    frame #59: 0x0000000819a0541b libuuilo.so`___lldb_unnamed_symbol121$$libuuilo.so + 2379
    frame #60: 0x00000008199f4e17 libuuilo.so`___lldb_unnamed_symbol46$$libuuilo.so + 12055
    frame #61: 0x00000008199f6cef libuuilo.so`___lldb_unnamed_symbol47$$libuuilo.so + 303
    frame #62: 0x0000000819a0ccc9 libuuilo.so`___lldb_unnamed_symbol154$$libuuilo.so + 41
    frame #63: 0x0000000801c5ca0c libsfxlo.so`SfxObjectShell::HandleFilter(SfxMedium*, SfxObjectShell const*) + 1644
    frame #64: 0x0000000801c5abaa libsfxlo.so`SfxObjectShell::DoLoad(SfxMedium*) + 970
    frame #65: 0x0000000801c89fec libsfxlo.so`SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) + 748
    frame #66: 0x0000000801d21906 libsfxlo.so`___lldb_unnamed_symbol7002$$libsfxlo.so + 9174
    frame #67: 0x000000080d78995a libfwklo.so`___lldb_unnamed_symbol1855$$libfwklo.so + 2362
    frame #68: 0x000000080d786abc libfwklo.so`___lldb_unnamed_symbol1852$$libfwklo.so + 124
    frame #69: 0x000000080d78517e libfwklo.so`___lldb_unnamed_symbol1847$$libfwklo.so + 1326
    frame #70: 0x000000080d72b2bc libfwklo.so`___lldb_unnamed_symbol609$$libfwklo.so + 716
    frame #71: 0x000000080d72b901 libfwklo.so`___lldb_unnamed_symbol614$$libfwklo.so + 49
    frame #72: 0x0000000801191ce2 libcomphelper.so`comphelper::SynchronousDispatch::dispatch(com::sun::star::uno::Reference<com::sun::star::uno::XInterface> const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) + 626
    frame #73: 0x000000080031f33f libsofficeapp.so`___lldb_unnamed_symbol237$$libsofficeapp.so + 8767
    frame #74: 0x000000080032a4c6 libsofficeapp.so`___lldb_unnamed_symbol310$$libsofficeapp.so + 1798
    frame #75: 0x00000008003072c9 libsofficeapp.so`___lldb_unnamed_symbol36$$libsofficeapp.so + 4073
    frame #76: 0x0000000800306140 libsofficeapp.so`___lldb_unnamed_symbol35$$libsofficeapp.so + 48
    frame #77: 0x0000000803ba44d8 libvcllo.so`___lldb_unnamed_symbol1798$$libvcllo.so + 3496
    frame #78: 0x0000000803e74df9 libvcllo.so`SalUserEventList::DispatchUserEvents(bool) + 585
    frame #79: 0x0000000808198d4d libvclplug_qt5lo.so`Qt5Instance::ImplYield(bool, bool) + 61
    frame #80: 0x000000080819a52a libvclplug_qt5lo.so`Qt5Instance::DoYield(bool, bool) + 234
    frame #81: 0x0000000803eb6900 libvcllo.so`Application::Execute() + 336
    frame #82: 0x00000008003034e2 libsofficeapp.so`___lldb_unnamed_symbol22$$libsofficeapp.so + 3250
    frame #83: 0x0000000803ebd89e libvcllo.so`ImplSVMain() + 142
    frame #84: 0x00000008003301df libsofficeapp.so`soffice_main + 255
    frame #85: 0x00000000002012f0 soffice.bin`___lldb_unnamed_symbol4$$soffice.bin + 16
    frame #86: 0x000000000020110f soffice.bin`___lldb_unnamed_symbol1$$soffice.bin + 271

Port is built with following options:

	COINMP         : off
	CUPS           : on
	DOCS           : on
	GNOME          : off
	GTK3           : off
	JAVA           : off
	KF5            : off
	MMEDIA         : off
	PGSQL          : off
	QT5            : on
	SDK            : off
	TEST           : off
	WEBDAV         : off

Host is running:

FreeBSD chateau.d.if 12.1-RELEASE-p8 FreeBSD 12.1-RELEASE-p8 r364103 CHATEAU  amd64

Please let me know if you need anymore information.

Thanks!
Comment 1 Dima Panov freebsd_committer freebsd_triage 2020-08-20 13:09:41 UTC
Ashish, thanks for report.

Unfortunately, I can't reproduce segfaults with packages built on a clean environment in poudriere :( 

Looks like you have a mixed old and new qt libraries after last major qt5 update.
Comment 2 Ashish SHUKLA freebsd_committer freebsd_triage 2020-08-21 04:32:47 UTC
(In reply to Dima Panov from comment #1)
Hi,

Thanks for following up.

That's what I thought too, but I could not find any trace of that. Do you know which libraries from my list are out of sync ?

λ pkg info -oa |awk '/^qt/ { print "echo "$1" = $(make -C /usr/ports/"$2" -V PKGNAME)"; }' |sh
qt5-assistant-5.15.0 = qt5-assistant-5.15.0
qt5-buildtools-5.15.0 = qt5-buildtools-5.15.0
qt5-concurrent-5.15.0 = qt5-concurrent-5.15.0
qt5-core-5.15.0_2 = qt5-core-5.15.0_2
qt5-dbus-5.15.0 = qt5-dbus-5.15.0
qt5-declarative-5.15.0_1 = qt5-declarative-5.15.0_1
qt5-designer-5.15.0 = qt5-designer-5.15.0
qt5-graphicaleffects-5.15.0 = qt5-graphicaleffects-5.15.0
qt5-gui-5.15.0 = qt5-gui-5.15.0
qt5-help-5.15.0 = qt5-help-5.15.0
qt5-imageformats-5.15.0 = qt5-imageformats-5.15.0
qt5-linguist-5.15.0 = qt5-linguist-5.15.0
qt5-linguisttools-5.15.0 = qt5-linguisttools-5.15.0
qt5-location-5.15.0 = qt5-location-5.15.0
qt5-multimedia-5.15.0 = qt5-multimedia-5.15.0
qt5-network-5.15.0 = qt5-network-5.15.0
qt5-networkauth-5.15.0 = qt5-networkauth-5.15.0
qt5-opengl-5.15.0 = qt5-opengl-5.15.0
qt5-printsupport-5.15.0 = qt5-printsupport-5.15.0
qt5-qdbus-5.15.0 = qt5-qdbus-5.15.0
qt5-qmake-5.15.0 = qt5-qmake-5.15.0
qt5-qtpaths-5.15.0 = qt5-qtpaths-5.15.0
qt5-quickcontrols-5.15.0 = qt5-quickcontrols-5.15.0
qt5-quickcontrols2-5.15.0 = qt5-quickcontrols2-5.15.0
qt5-script-5.15.0 = qt5-script-5.15.0
qt5-scripttools-5.15.0 = qt5-scripttools-5.15.0
qt5-sensors-5.15.0 = qt5-sensors-5.15.0
qt5-serialport-5.15.0 = qt5-serialport-5.15.0
qt5-speech-5.15.0 = qt5-speech-5.15.0
qt5-sql-5.15.0 = qt5-sql-5.15.0
qt5-sqldrivers-mysql-5.15.0 = qt5-sqldrivers-mysql-5.15.0
qt5-sqldrivers-sqlite3-5.15.0 = qt5-sqldrivers-sqlite3-5.15.0
qt5-svg-5.15.0 = qt5-svg-5.15.0
qt5-testlib-5.15.0 = qt5-testlib-5.15.0
qt5-uiplugin-5.15.0 = qt5-uiplugin-5.15.0
qt5-uitools-5.15.0 = qt5-uitools-5.15.0
qt5-virtualkeyboard-5.15.0 = qt5-virtualkeyboard-5.15.0
qt5-wayland-5.15.0 = qt5-wayland-5.15.0
qt5-webchannel-5.15.0 = qt5-webchannel-5.15.0
qt5-webengine-5.15.0_2 = qt5-webengine-5.15.0_2
qt5-webkit-5.212.0.a4_3 = qt5-webkit-5.212.0.a4_3
qt5-widgets-5.15.0 = qt5-widgets-5.15.0
qt5-x11extras-5.15.0 = qt5-x11extras-5.15.0
qt5-xml-5.15.0 = qt5-xml-5.15.0
qt5-xmlpatterns-5.15.0_1 = qt5-xmlpatterns-5.15.0_1
qtchooser-66_3 = qtchooser-66_3
qtkeychain-0.10.0 = qtkeychain-0.10.0

In your testing did you build Qt5 with DEBUG ? I have following in my make.conf(5):

WITH_DEBUG_PORTS+=      devel/qt5-assistant
WITH_DEBUG_PORTS+=      devel/qt5-buildtools
WITH_DEBUG_PORTS+=      devel/qt5-concurrent
WITH_DEBUG_PORTS+=      devel/qt5-core
WITH_DEBUG_PORTS+=      devel/qt5-dbus
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-declarative
WITH_DEBUG_PORTS+=      devel/qt5-designer
WITH_DEBUG_PORTS+=      graphics/qt5-graphicaleffects
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-gui
WITH_DEBUG_PORTS+=      devel/qt5-help
WITH_DEBUG_PORTS+=      graphics/qt5-imageformats
WITH_DEBUG_PORTS+=      devel/qt5-linguist
WITH_DEBUG_PORTS+=      devel/qt5-linguisttools
WITH_DEBUG_PORTS+=      devel/qt5-location
WITH_DEBUG_PORTS+=      multimedia/qt5-multimedia
WITH_DEBUG_PORTS+=      net/qt5-network
WITH_DEBUG_PORTS+=      graphics/qt5-opengl
WITH_DEBUG_PORTS+=      print/qt5-printsupport
WITH_DEBUG_PORTS+=      devel/qt5-qmake
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-quickcontrols
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-quickcontrols2
WITH_DEBUG_PORTS+=      devel/qt5-script
WITH_DEBUG_PORTS+=      comms/qt5-sensors
WITH_DEBUG_PORTS+=      comms/qt5-serialport
WITH_DEBUG_PORTS+=      accessibility/qt5-speech
WITH_DEBUG_PORTS+=      databases/qt5-sql
WITH_DEBUG_PORTS+=      databases/qt5-sqldrivers-sqlite3
WITH_DEBUG_PORTS+=      graphics/qt5-svg
WITH_DEBUG_PORTS+=      devel/qt5-testlib
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-uiplugin
WITH_DEBUG_PORTS+=      devel/qt5-uitools
WITH_DEBUG_PORTS+=      www/qt5-webchannel
WITH_DEBUG_PORTS+=      www/qt5-webengine
WITH_DEBUG_PORTS+=      www/qt5-webkit
WITH_DEBUG_PORTS+=      x11-toolkits/qt5-widgets
WITH_DEBUG_PORTS+=      x11/qt5-x11extras
WITH_DEBUG_PORTS+=      textproc/qt5-xml
WITH_DEBUG_PORTS+=      textproc/qt5-xmlpatterns

FTR, this is broken with libreoffice6-6.4.6 too.

Thanks!
Comment 3 Dima Panov freebsd_committer freebsd_triage 2020-08-21 10:21:34 UTC
(In reply to Ashish SHUKLA from comment #2)

Sometimes mysterious bugs happens when build qt on a real machine with previous qt version installed -- qmake buildsystem hooks up the old existed in polluted system includes/libs :( 

I suggest to force rebuild the whole qt5, with qmake and qt5-buildtools at first.

Or switch to poudriere for guaranteed clean build environment and do a binary upgrades from prepared repo.
Comment 4 Ashish SHUKLA freebsd_committer freebsd_triage 2020-08-21 11:38:32 UTC
(In reply to Dima Panov from comment #3)

The packages are built in poudriere only. I build them with debug information.

Anyways, I'm building it again from scratch to isolate the possibility of such an inconsistency, and will report back when it completes.

Thanks!
Comment 5 Ashish SHUKLA freebsd_committer freebsd_triage 2020-08-22 14:36:02 UTC
(In reply to Ashish SHUKLA from comment #4)

It didn't help. Now trying to build without DEBUG support :/
Comment 6 Ashish SHUKLA freebsd_committer freebsd_triage 2020-08-22 17:08:36 UTC
(In reply to Ashish SHUKLA from comment #5)

After re-compiling Qt5 ports without DEBUG support, LibreOffice starts now.
Comment 7 Li-Wen Hsu freebsd_committer freebsd_triage 2020-11-06 07:50:33 UTC
I guess the assertion code is only enabled when DEBUG is enabled. CC kde@ for more eyes.
Comment 8 Graham Perrin freebsd_committer freebsd_triage 2022-12-30 16:22:16 UTC
Reproducible with 7.4.3.2_1 or greater, on any current branch of FreeBSD?
Comment 9 Ashish SHUKLA freebsd_committer freebsd_triage 2023-01-01 13:53:34 UTC
(In reply to Graham Perrin from comment #8)

I'm not able to reproduce anymore with libreoffice 7.4.3.2_1 and Qt5 compiled with debug options. Marking this as resolved.

Thanks!