Bug 157088 - qt6: Crash on exit after using font color toolbox item with Orca running
Summary: qt6: Crash on exit after using font color toolbox item with Orca running
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
24.2.0.0 alpha0+
Hardware: All Linux (All)
: medium normal
Assignee: Michael Weghorn
URL:
Whiteboard: target:24.2.0 target:7.6.2
Keywords: accessibility
Depends on:
Blocks: a11y, Accessibility
  Show dependency treegraph
 
Reported: 2023-09-04 14:46 UTC by Michael Weghorn
Modified: 2023-09-14 16:24 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Weghorn 2023-09-04 14:46:38 UTC
This is only reproducible when Orca actually announces what's in the UI with the qt6 VCL plugin, which is currently not always the case (s. step 3)...

Steps to reproduce:

1) start the Orca screen reader
2) start Writer
3) perform actions until Orca starts announcing what's there in the UI
   (clicking around etc. often helps, or pressing F1 without local help being installed to open a dialog box asking whether to go to the online help)
4) press F6 until the formatting toolbar is focused
5) press Tab until the Font Color toolbox item is focused
6) press Space key to open the toolbar popup
7) press Tab twice to move to the list of colors, then move around using the arrow keys
8) press Tab again to move to the recent color list, more around there
9) press Esc to close the toolbar popup
10) close Writer

Note: Make sure that Orca announces the colors in steps 7/8.

Result: LO crashes with the below backtrace

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 19b8bac2aa59d02968c33ac6f83c66907d5ab94c
CPU threads: 12; OS: Linux 6.4; UI render: default; VCL: qt6 (cairo+xcb)
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded

> 1  __pthread_kill_implementation  pthread_kill.c  44  0x7fe2a2ea80fc 
> 2  __pthread_kill_internal    pthread_kill.c  78  0x7fe2a2ea815f 
> 3  __GI_raise raise.c 26  0x7fe2a2e5a472 
> 4  __GI_abort abort.c 79  0x7fe2a2e444b2 
> 5  __assert_fail_base assert.c    92  0x7fe2a2e443d5 
> 6  __assert_fail  assert.c    101 0x7fe2a2e533a2 
> 7  (anonymous namespace)::implLookupClient    accessibleeventnotifier.cxx 140 0x7fe2a21138a4 
> 8  comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing   accessibleeventnotifier.cxx 185 0x7fe2a2113bb8 
> 9  VCLXAccessibleListItem::disposing  vclxaccessiblelistitem.cxx  164 0x7fe26870cb58 
> 10 cppu::WeakAggComponentImplHelperBase::dispose  implbase.cxx    230 0x7fe2a1c755e3 
> 11 cppu::WeakAggComponentImplHelperBase::release  implbase.cxx    204 0x7fe2a1c75312 
> 12 cppu::WeakAggComponentImplHelper6<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleText, com::sun::star::lang::XServiceInfo>::release compbase6.hxx   142 0x7fe26870fc0c 
> 13 com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>::~Reference Reference.hxx   114 0x7fe28f2428a7 
> 14 QtAccessibleWidget::~QtAccessibleWidget    QtAccessibleWidget.hxx  39  0x7fe28f262cf9 
> 15 QtAccessibleWidget::~QtAccessibleWidget    QtAccessibleWidget.hxx  39  0x7fe28f262dd0 
> 16 QAccessibleCache::deleteInterface  qaccessiblecache.cpp    173 0x7fe28e0c8e4b 
> 17 QAccessibleCache::~QAccessibleCache    qaccessiblecache.cpp    31  0x7fe28e0c845c 
> 18 QAccessibleCache::~QAccessibleCache    qaccessiblecache.cpp    32  0x7fe28e0c84e2 
> 19 cleanupAccessibleCache qaccessiblecache.cpp    24  0x7fe28e0c83c8 
> 20 qt_call_post_routines  qcoreapplication.cpp    327 0x7fe28e9a4593 
> 21 QApplication::~QApplication    qapplication.cpp    663 0x7fe28cf9dff6 
> 22 QApplication::~QApplication    qapplication.cpp    717 0x7fe28cf9e2f4 
> 23 std::default_delete<QApplication>::operator()  unique_ptr.h    99  0x7fe28f2cf3ae 
> 24 std::__uniq_ptr_impl<QApplication, std::default_delete<QApplication>>::reset   unique_ptr.h    211 0x7fe28f2cf7f6 
> 25 std::unique_ptr<QApplication, std::default_delete<QApplication>>::reset    unique_ptr.h    509 0x7fe28f2cd72d 
> 26 QtInstance::~QtInstance    QtInstance.cxx  273 0x7fe28f2c614f 
> 27 QtInstance::~QtInstance    QtInstance.cxx  274 0x7fe28f2c6226 
> 28 DestroySalInstance salplug.cxx 389 0x7fe299a62611 
> 29 DeInitVCL  svmain.cxx  600 0x7fe299b41226 
> 30 ImplSVMain svmain.cxx  229 0x7fe299b3f9f7 
> 31 SVMain svmain.cxx  236 0x7fe299b3fa53 
> 32 soffice_main   sofficemain.cxx 94  0x7fe2a30a1b5d 
> 33 sal_main   main.c  51  0x55c86565c9d4 
> 34 main   main.c  49  0x55c86565c9ba
Comment 1 Michael Weghorn 2023-09-04 14:48:16 UTC
Backtrace is similar to the one in tdf#156683, root cause also (a11y objects not haven't been disposed).
Comment 2 Commit Notification 2023-09-04 19:41:08 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/bfa9d01920e7e042a83627d7fa4e78c70bc7ece5

tdf#157088 a11y: No need to use WeakReference for list children

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 3 Commit Notification 2023-09-04 19:42:11 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/51de048ae97cbd371457dbc07120e30db9ee4187

tdf#157088 a11y: Dispose list items with list

It will be available in 24.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 4 Commit Notification 2023-09-14 16:23:21 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

https://git.libreoffice.org/core/commit/f1df57c29aacdd7f56ecd33976c8a6bf6858b918

tdf#157088 a11y: No need to use WeakReference for list children

It will be available in 7.6.2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Commit Notification 2023-09-14 16:24:24 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "libreoffice-7-6":

https://git.libreoffice.org/core/commit/5587c422fa0f8f93849cb2eabbf5594e11819b50

tdf#157088 a11y: Dispose list items with list

It will be available in 7.6.2.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.