Bug 147742

Summary: Assert hit when using UnoControlGrid with screen reader
Product: LibreOffice Reporter: Michael Weghorn <m.weghorn>
Component: UIAssignee: Not Assigned <libreoffice-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: m.weghorn
Priority: medium    
Version: 7.4.0.0 alpha0+   
Hardware: All   
OS: Linux (All)   
Whiteboard: target:7.4.0
Crash report or crash signature: Regression By:
Bug Depends on:    
Bug Blocks: 101912    
Attachments: Sample document
GDB backtrace with first two fixes in place

Description Michael Weghorn 2022-03-03 10:34:03 UTC
Created attachment 178634 [details]
Sample document

Steps to reproduce with a debug build of LO master:

0) decrease macro security to e.g. "Medium", so LO asks whether or not to allow macro executation
1) start Orca screen reader on Linux
2) start LO with the gtk3 VCL plugin
3) open attached document "UnoControlGrid.odt" (originally from https://bz.apache.org/ooo/show_bug.cgi?id=125322 )
4) click on "Run the macro"

Result: LO crashes with an assert:

soffice.bin: .../libreoffice/vcl/source/app/dbggui.cxx:35: void ImplDbgTestSolarMutex(): Assertion `ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex not owned!"' failed.

This is on Debian testing with orca 41.2-1 and

Version: 7.4.0.0.alpha0+ / LibreOffice Community
Build ID: 5b03e07dd21b56e99d6b6b60edec1ed2f388bfc2
CPU threads: 12; OS: Linux 5.16; UI render: default; VCL: gtk3
Locale: en-GB (en_GB.UTF-8); UI: en-US
Calc: threaded
Comment 1 Michael Weghorn 2022-03-03 10:35:15 UTC
I ran into this while working on something other a11y-related, plan to fix this along the way.
Comment 2 Michael Weghorn 2022-03-03 13:46:16 UTC
Created attachment 178641 [details]
GDB backtrace with first two fixes in place

The initially described issue is fixed with these pending changes:
https://gerrit.libreoffice.org/c/core/+/130924
https://gerrit.libreoffice.org/c/core/+/130925

However, LO still crashes, now showing 

> [Thread 0x7fffe333b640 (LWP 592530) exited]
> warn:legacy.osl:592396:592396:svtools/source/uno/unocontroltablemodel.cxx:159: DefaultTableModel::getColumnModel: invalid index!
> --Type <RET> for more, q to quit, c to continue without paging--
> 
> Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.

GDB backtrace attached.
Comment 3 Commit Notification 2022-03-04 07:05:09 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/1ccb6dc5bd2aa67f151d590b1aad20cecefaa28c

tdf#147742 a11y: AccessibleGridControlHeader needs SolarMutex

It will be available in 7.4.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 2022-03-04 07:06:17 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

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

tdf#147742 a11y: AccessibleGridControlTable needs SolarMutex

It will be available in 7.4.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 5 Commit Notification 2022-03-04 07:06:25 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/83419f869c33d550a61d260b1b3aef6a00cefc45

tdf#147742 a11y: AccessibleGridControl...: get accessible name on demand

It will be available in 7.4.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 6 Commit Notification 2022-03-04 07:06:33 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

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

tdf#147742 a11y: AccessibleGridControlBase: get accessible desc on demand

It will be available in 7.4.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 7 Commit Notification 2022-03-09 16:48:13 UTC
Michael Weghorn committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/4e641d9240a981216d6724141b9b7a9e4c63c82a

Related: tdf#147742 a11y: Dispose table cells as well

It will be available in 7.4.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.