Bug 135066 - Frozen UI or Crash when interacting with embedded OLE object's Tabbed UI after re-entering edit mode if containing document uses classic toolbar UI
Summary: Frozen UI or Crash when interacting with embedded OLE object's Tabbed UI afte...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
7.0.0.1 rc
Hardware: All All
: medium critical
Assignee: Not Assigned
URL:
Whiteboard: target:7.2.0
Keywords:
: 135213 (view as bug list)
Depends on:
Blocks: Notebookbar-Tabbed OLE-Object-Edit-Transition Crash
  Show dependency treegraph
 
Reported: 2020-07-23 01:40 UTC by sawakaze
Modified: 2024-05-20 02:10 UTC (History)
5 users (show)

See Also:
Crash report or crash signature: ["libgobject-2.0.so.0.7200.4","SfxDispatcher::GetFrame","libc.so.6"]


Attachments
ScreenCast (1.41 MB, video/x-matroska)
2020-07-23 01:40 UTC, sawakaze
Details
I got an error and it crashed. (92.26 KB, image/png)
2020-07-27 23:52 UTC, Junichi Matsukawa
Details

Note You need to log in before you can comment on or make changes to this bug.
Description sawakaze 2020-07-23 01:40:00 UTC
Description:
After following step, application is freeze.
(on case of windows, application crash is caused)

On my env, freeze not only libreoffice UI, but also desktop env.
Attachment screencast is detail, please confirm this video.



Steps to Reproduce:
1. open writer 
2. set UI to Tabbed UI
-> writer UI to Tab UI
3. close writer

4. open impress
note: impress is not Tabbed UI
5. Insert > Object > OLE object
6. select LiberOffice Text 
-> insert writer text on presentation
7. select inserted Writer object
8. select "Insert Tab" and Table icon.
9. input table size on table dialog and enter button
-> insert table (it name to "1st table")
10. once click outside oleobject.
11. re-select writer object.
12. cursor set next to "1st table"
13. select table from tab
14. input size and press enter.
-> after press enter, Freeze UI


Actual Results:
Freeze UI.
can not set 2nd table from tabui

Expected Results:
not Freeze UI
can set 2nd table from tabui


Reproducible: Always


User Profile Reset: Yes



Additional Info:
I confirm following version.

Version: 7.0.0.2
Build ID: c01aa64b6c3d89ebe5fe69c28c7adb24eb85249c
CPU threads: 4; OS:Linux 4.15; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Calc: threaded
Comment 1 sawakaze 2020-07-23 01:40:26 UTC
Created attachment 163432 [details]
ScreenCast
Comment 2 sawakaze 2020-07-23 02:33:54 UTC
I think key point is

1. impress is not tabUI, but writer is tabUI
2. on Step10, user selects other object. and re-select oleobject.
3. operate from tabUI button.
Comment 3 Junichi Matsukawa 2020-07-27 23:52:48 UTC
Created attachment 163661 [details]
I got an error and it crashed.

The bug was reproduced.
I got an error and it crashed.

I used the Separate Install GUI.
Version: 7.0.0.2 (x64)
Build ID: c01aa64b6c3d89ebe5fe69c28c7adb24eb85249c
CPU threads: 4; OS:Windows 10.0 Build 18363; UI render: Skia/Raster; VCL: win
Locale: ja-JP (ja_JP); UI: ja-JP
Calc: CL
Comment 4 himajin100000 2020-07-28 01:12:56 UTC
Reproduced. (Crash reporter did not appear, though)

I don't know what's the cause of this bug, but the log says

OSL_ASSERT: pWindow

at 

https://opengrok.libreoffice.org/xref/core/svtools/source/control/toolbarmenu.cxx?r=a16e6122#57

after the previous assert, the following line is giving a message.

https://opengrok.libreoffice.org/xref/core/sw/source/core/layout/newfrm.cxx?r=b6ad72a3#313
Comment 5 himajin100000 2020-07-29 22:06:15 UTC
FYI:

before the second "OSL_ASSERT : pWindow" in the log file, the following message is given.

info:vcl.gdi.wndproc:34264:18032:vcl/win/app/salinst.cxx:573: SalComWndProc(nMsg=1139, wParam=0, lParam=2350370393376); inSendMsg: 0
info:vcl.gdi.wndproc:34264:18032:vcl/win/app/salinst.cxx:573: SalComWndProc(nMsg=1145, wParam=18024606, lParam=-721343405); inSendMsg: 0
Comment 6 QA Administrators 2022-07-30 03:41:05 UTC Comment hidden (obsolete)
Comment 7 Stéphane Guillou (stragu) 2024-05-20 02:05:31 UTC
Tested in 7.0.0.3:

- all components with classic toolbar interface: not reproduced
- all components with tabbed UI: not reproduced
- only Impress with tabbed UI: not reproduced
- only Writer with tabbed UI: reproduced, with crash signature "libgobject-2.0.so.0.7200.4" when killed after hang -> https://crashreport.libreoffice.org/stats/crash_details/30b3ea38-d22f-4823-b86e-1804f3010db3
- the other way around (only Impress with tabbed UI, inserting Presentation OLE object in Writer document, inserting two tables successively), I reproduce the same thing.

Note that:
- you don't even need to insert a first table: even without editing the object in the first instance, the hang happens after re-entering edit mode.
- also happens between other components (e.g. Calc + Writer), so not Impress-specific
- also happens with other kinds of interaction with the tabbed UI. For example, when inserting an image in a Presentation OLE object when Calc uses classic toolbars, I get a crash signature "SfxDispatcher::GetFrame": https://crashreport.libreoffice.org/stats/crash_details/5d8a8edb-f4a0-4455-a97c-63f679c0f555

In 7.1, I get direct crash with signature "libc.so.6": https://crashreport.libreoffice.org/stats/crash_details/de4ad25d-56d1-402c-8f24-7cbaa697f9d5

Not reproduced in 7.2.0.4 nor in a recent daily build:

Version: 24.8.0.0.alpha1+ (X86_64) / LibreOffice Community
Build ID: 1b45ca1aa7d7cb8e7adcc07f8c60e26a413eca8c
CPU threads: 8; OS: Linux 6.5; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: CL threaded

Fix bibisected with linux-64-7.2 to first _good_ build [7052746687af637a721d0d16c814a9769f887993] which points to:

commit 9f06c54ca1819b6d4df48f33772cfa5ceb90dccd
author	Szymon Kłos 	Tue Apr 06 07:08:30 2021 +0200
committer	Szymon Kłos 	Mon Apr 19 08:37:31 2021 +0200
notebookbar: minify for online
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114154

Thanks Szymon!
Comment 8 Stéphane Guillou (stragu) 2024-05-20 02:10:48 UTC
*** Bug 135213 has been marked as a duplicate of this bug. ***