Bug 104540 - converting an object, assertion in {anonymous}::implLookupClient (gtk2 only)
Summary: converting an object, assertion in {anonymous}::implLookupClient (gtk2 only)
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
5.4.0.0.alpha0+
Hardware: x86-64 (AMD64) Linux (All)
: high critical
Assignee: Julien Nabet
URL:
Whiteboard: target:5.4.0
Keywords: bibisected, regression
Depends on:
Blocks:
 
Reported: 2016-12-09 22:31 UTC by MM
Modified: 2016-12-26 19:17 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
terminal output of run (13.08 KB, text/plain)
2016-12-12 18:17 UTC, Terrence Enger
Details
gdb on the core file (62.27 KB, text/plain)
2016-12-12 18:21 UTC, Terrence Enger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description MM 2016-12-09 22:31:42 UTC
Steps to reproduce:

- Open Draw (or impress).
- Make an object (like a rectangle).
- Convert > [pick any].
- Crash.

Confirmed with Version: 5.4.0.0.alpha0+
Build ID: cb598029835477326b190bc99abd31a487cc5a91
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-12-09_00:51:36
Locale: en-US (en_US.UTF-8); Calc: single

but unconfirmed with Version: 5.3.0.0.alpha1+
Build ID: 883024d657fb45c7da459017d2f936aac5644bfb
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; Layout Engine: new; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-11-21_22:42:51
Locale: en-US (en_US.UTF-8); Calc: single
Comment 1 steve 2016-12-10 10:02:50 UTC
not reproducible on macOS w latest master.

create rectangle
right-click > convert > 3D
conversion happens

maybe linux only.

Version: 5.4.0.0.alpha0+
Build ID: 142618ecae472e535c582c0fb357d2a9a76655f1
CPU Threads: 4; OS Version: Mac OS X 10.12.1; UI Render: default; 
TinderBox: MacOSX-x86_64@49-TDF, Branch:master, Time: 2016-11-28_00:49:15
Locale: de-DE (de_DE.UTF-8); Calc: group
Comment 2 Thomas Hackert 2016-12-10 10:34:51 UTC
Hello MM, *,
I cannot confirm it with

OS: Debian Testing AMD64
LO: Version: 5.4.0.0.alpha0+
Build-ID: b52167df08511239c3d08904a3d12a3c92141f38
CPU-Threads: 4; BS-Version: Linux 4.5; UI-Render: Standard; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-12-10_00:00:32
Gebietsschema: de-DE (de_DE.UTF-8); Calc: group
(parallel installed, following the instructions from https://wiki.documentfoundation.org/Installing_in_parallel/Linux with de_DE lang- as well as helppack)

... :( Would you be so kind to test it with a newer build, please? And which distro are you using?
Have a nice day
Thomas.
Comment 3 Buovjaga 2016-12-10 12:18:29 UTC
No repro.

Arch Linux 64-bit, KDE Plasma 5
Version: 5.4.0.0.alpha0+
Build ID: a564821eb9e991774195120e6965b2a8b1419dc5
CPU Threads: 8; OS Version: Linux 4.8; UI Render: default; VCL: gtk2; 
Locale: fi-FI (fi_FI.UTF-8); Calc: group
Built on December 9th 2016

My build is newer than MM's.
Comment 4 MM 2016-12-10 12:55:28 UTC
My system is ubuntu 16.04 x64. Still crashes when renaming the userprofile.

and with Version: 5.4.0.0.alpha0+
Build ID: b52167df08511239c3d08904a3d12a3c92141f38
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-12-10_00:00:32
Locale: en-US (en_US.UTF-8); Calc: single
Comment 5 Aron Budea 2016-12-10 13:47:16 UTC
Confirmed with the same daily build as MM's in Ubuntu 16.04.

Upon trying to convert, an empty error dialog is shown, and LO crashes.
No useful backtrace could be retrieved.
Comment 6 Julien Nabet 2016-12-10 15:51:39 UTC
On pc Debian x86-64 with master sources updated today, I could reproduce this.

It seems to be only with gtk2 (I don't reproduce this with gtk3)
That's why I put tdf#104481 in See also.

Caolan: thought you might be interested in this one since we could kill 2 birds with same fix/stone.
I don't know how to retrieve a bt here since there's no segfault.
Comment 7 Julien Nabet 2016-12-10 15:52:36 UTC
Caolan: thought you might be interested in this one (forgot to add you in cc in my previous comment). vcl/gtk2 only
Comment 8 Terrence Enger 2016-12-12 18:17:40 UTC
Created attachment 129536 [details]
terminal output of run

I find that the bug is intermittent, but I have seen it on Linux in
both daily dbgutil bibisect repository version 2016-12-12 and a local
dbgutil build of commit ae1892c6, committed on 2016-12-11 05:02.
These observations are from debian-stretch with an xfce desktop; LO is
using gtk3 VCL.

The terminal output is from the local built LibreOffice.  I did ...

(1) Run LibreOffice with command line parameters
    --norestore --draw. Program presents Draw window.

(2) Click on the rectangle icon in the toolbar at the left.

(3) In the drawing area, drag the cursor down and to the right.  The
    drawing area shows a blue rectangle.

(4) Move the cursor slightly up to the left.  Soon, the program draws
    a box with handles around the blue rectangle.

(5) Press the properties key and from the pop-up menu, select
    Convert > to curve.  There is no visible result.

(6) Press the properties key and from the pop-up menu, select
    Convert > to polygon.  Program crashes.

The error message is (one line, rewrapped) ...

    soffice.bin:
    /home/terry/lo_hacking/git/libo6/comphelper/source/misc/
        accessibleeventnotifier.cxx:135:
    bool {anonymous}::implLookupClient
        (comphelper::AccessibleEventNotifier::TClientId
        , std::__debug::map<unsigned int
        , comphelper::OInterfaceContainerHelper2*>::iterator&
        ):
    Assertion `rClients.end() != rPos &&
        "AccessibleEventNotifier::implLookupClient: invalid client id "
        "(did you register your client?)!"' failed.
Comment 9 Terrence Enger 2016-12-12 18:21:58 UTC
Created attachment 129537 [details]
gdb on the core file

This is from commit ae18926c, configured ...
    CC=ccache /usr/bin/gcc
    CXX=ccache /usr/bin/g++
    --enable-option-checking=fatal
    --enable-dbgutil
    --enable-debug
    --without-system-postgresql
    --without-myspell-dicts
    --with-extra-buildid
    --without-doxygen
    --with-external-tar=/home/terry/lo_hacking/git/src
    --without-package-format
built and running on debian-stretch.

line  what
----  ------------------------------
  32  info threads
  39  thread apply all backtrace
 168  backtrace full
Comment 10 Terrence Enger 2016-12-12 18:23:51 UTC
For specificity, I am changing the sumary from
    Crash when converting an object
to
    converting an object, assertion in {anonymous}::implLookupClient

I am removing keyword wantBacktrace and adding haveBacktrace.
Comment 11 Julien Nabet 2016-12-12 19:26:25 UTC
I submitted a patch to review on master:
https://gerrit.libreoffice.org/#/c/31918/
Comment 12 Terrence Enger 2016-12-12 20:18:19 UTC
Working in the daily Linux dbgutil bibisect repository, I think that I
have narrowed the regression down to the 48 commits ...

          commit    date        s-h
          --------  ----------  --------
    good  bc22f523  2016-12-08  72b70d93
    bad   1bd0403f  2016-12-09  cb598029

My hesitation comes from the fragility of the bug, but I just saw the
"good" version work without problem 8 times in a row.  I am removing
keyword wantBibisect and adding bibisected.


In that range of commits, I notice this one ...

    commit 8228227168a7eb3ebf14629bec87f01536c23970
    Author:     Noel Grandin <noel.grandin@collabora.co.uk>
    AuthorDate: Thu Dec 8 15:14:25 2016 +0200
    Commit:     Noel Grandin <noel.grandin@collabora.co.uk>
    CommitDate: Thu Dec 8 17:27:05 2016 +0000

        convert OSL_ENSURE to assert in AccessibleEventNotifier
    
        and fix the places that trigger it
    
        Change-Id: I97a04cff25ab5aa1d42c79a971d15ba742bf384e
        Reviewed-on: https://gerrit.libreoffice.org/31760
        Tested-by: Jenkins <ci@libreoffice.org>
        Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>

Noel, I am adding you to cc.  I hope that is all right.
Comment 13 Julien Nabet 2016-12-12 20:21:01 UTC
(In reply to Terrence Enger from comment #12)
>...
> In that range of commits, I notice this one ...
> 
>     commit 8228227168a7eb3ebf14629bec87f01536c23970
>     Author:     Noel Grandin <noel.grandin@collabora.co.uk>
>     AuthorDate: Thu Dec 8 15:14:25 2016 +0200
>     Commit:     Noel Grandin <noel.grandin@collabora.co.uk>
>     CommitDate: Thu Dec 8 17:27:05 2016 +0000
> 
>         convert OSL_ENSURE to assert in AccessibleEventNotifier
>     
>         and fix the places that trigger it
>     
>         Change-Id: I97a04cff25ab5aa1d42c79a971d15ba742bf384e
>         Reviewed-on: https://gerrit.libreoffice.org/31760
>         Tested-by: Jenkins <ci@libreoffice.org>
>         Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
> 
> Noel, I am adding you to cc.  I hope that is all right.

I had quoted this commit in the given gerrit link :-) I'm just waiting a TBs validation and I push the fix.
Comment 14 Commit Notification 2016-12-12 21:42:26 UTC
Julien Nabet committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=b5ae4ccf462da85ec87e953212135871fd98bfbb

tdf#104540: AccessibleEventNotifier AccessibleBase (editeng)

It will be available in 5.4.0.

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

Affected users are encouraged to test the fix and report feedback.
Comment 15 Julien Nabet 2016-12-12 21:44:41 UTC
(I haven't had the patience to wait for Windows TB)
Comment 16 Terrence Enger 2016-12-13 14:52:07 UTC
The problem seems to be gone in daily Linux dbgutil bibisect
repository version 2016-12-13.

Thank you, Julien.  I am sorry about the noise in comment 12.  I was
expecting the link to gerrit to be "over my head".
Comment 17 MM 2016-12-18 00:57:11 UTC
Still crashes under ubuntu 16.04 x64 with Version: 5.4.0.0.alpha0+
Build ID: b7c55b662810ee3bf82d134ff1ff9a96bfee4046
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-12-15_01:12:52
Locale: en-US (en_US.UTF-8); Calc: single
Comment 18 Julien Nabet 2016-12-18 11:12:19 UTC
I could reproduce this only with gtk2 with empty popup message then the crash.
Comment 19 MM 2016-12-18 12:18:33 UTC
Some more (related ?) crashes is when you try to flip the object, to align or to arrange it.
Comment 20 Julien Nabet 2016-12-18 12:20:17 UTC
(In reply to MM from comment #19)
> Some more (related ?) crashes is when you try to flip the object, to align
> or to arrange it.

With each time an empty popup message then click ok, it crashes?
Comment 21 MM 2016-12-18 16:23:54 UTC
(In reply to Julien Nabet from comment #20)
> (In reply to MM from comment #19)
> > Some more (related ?) crashes is when you try to flip the object, to align
> > or to arrange it.
> 
> With each time an empty popup message then click ok, it crashes?

yes
Comment 22 Julien Nabet 2016-12-23 09:04:27 UTC
With master sources updated yesterday, I don't reproduce this.
+ I see the exact same log as tdf#104687:
warn:vcl.a11y:17524:1:vcl/unx/gtk/a11y/atkutil.cxx:106: exception:

So let's put this one to FIXED.

MM/Terrence: don't hesitate to reopen this tracker if you still reproduce this with a build which includes this commit:
https://cgit.freedesktop.org/libreoffice/core/commit/?id=88dad8fe1a94055dcbb05a6e6f0df2d007914a45
Comment 23 MM 2016-12-23 22:25:26 UTC
(In reply to Julien Nabet from comment #22)
> With master sources updated yesterday, I don't reproduce this.
> + I see the exact same log as tdf#104687:
> warn:vcl.a11y:17524:1:vcl/unx/gtk/a11y/atkutil.cxx:106: exception:
> 
> So let's put this one to FIXED.
> 
> MM/Terrence: don't hesitate to reopen this tracker if you still reproduce
> this with a build which includes this commit:
> https://cgit.freedesktop.org/libreoffice/core/commit/
> ?id=88dad8fe1a94055dcbb05a6e6f0df2d007914a45

I don't have the crash anymore with

Version: 5.4.0.0.alpha0+
Build ID: 7a1add76d542e9929c1feab9e06949990e236616
CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; 
TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time: 2016-12-23_01:16:43
Locale: en-US (en_US.UTF-8); Calc: single
Comment 24 Julien Nabet 2016-12-26 19:17:07 UTC
(In reply to MM from comment #23)
> (In reply to Julien Nabet from comment #22)
>...
> 
> I don't have the crash anymore with
> 
> Version: 5.4.0.0.alpha0+
> Build ID: 7a1add76d542e9929c1feab9e06949990e236616
> CPU Threads: 2; OS Version: Linux 4.4; UI Render: default; VCL: gtk2; 
> TinderBox: Linux-rpm_deb-x86_64@70-TDF, Branch:master, Time:
> 2016-12-23_01:16:43
> Locale: en-US (en_US.UTF-8); Calc: single

Thank you for your feedback, let's put this one to VERIFIED then.