Bug Hunting Session
Bug 99069 - assertion "SolarMutex not locked" from <Cancel> Data Ranges dialog
Summary: assertion "SolarMutex not locked" from <Cancel> Data Ranges dialog
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Calc (show other bugs)
Version:
(earliest affected)
5.2.0.0.alpha0+
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Markus Mohrhard
URL:
Whiteboard: target:5.2.0 target:5.1.3 target:6.3.0
Keywords: bibisected, haveBacktrace, regression
: 98914 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-04-04 01:29 UTC by Terrence Enger
Modified: 2019-01-03 17:33 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
`make debugrun` with backgtrace (19.73 KB, text/plain)
2016-04-04 01:29 UTC, Terrence Enger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Terrence Enger 2016-04-04 01:29:25 UTC
Created attachment 124051 [details]
`make debugrun` with backgtrace

The assertion is at vcl/source/app/dbggui.cxx:47, which reads
(newline added) ...

    assert(ImplGetSVData()->mpDefInst->CheckYieldMutex() &&
           "SolarMutex not locked");

Bug 95365 reports the same assertion, but the backtraces differ below
DbgFunc(unsigned short, void*).  Hence, this new bug report.


STR
---
(1) Download and open example.ods attached to tdf#97266
    <https://bugs.documentfoundation.org/attachment.cgi?id=122108>.
    Program shows Calc window "example.ods - LibreOfficeDev Calc..."
    with cell B1 active.

(2) In tool bar, click the chart icon.  Program presents Chart Wizard.

(3) In Chart Wizard, click <Finish>.  The program closes the wizard;
    the chart shows a border with handles on each side and at each
    corner.

(4) Click outside the chart, for example in cell C23.  The borders
    disappear from the chart and the program restores the menubar to
    the window.  (Yes, this step is necessary to the crash.)

(5) Double-click on the chart.  The program shows a border around the
    chart.  (It may be necessary to do this a second time before the
    pop-up menu will offer "Data Ranges...".

(6) Right-click on the chart; from the pop-up menu select "Data
    Ranges...".  The program presents dialog "Data Ranges", tab "Data
    Range".

(7) Click on tab "Data Series".  (Actually, tab "Data Range" crashes,
    too.  This step is just a remnant of what I was doing when I
    stumbled over the bug.)

(8) Click <Cancel>.  In the versions that I deemed bad while
    bibisecting, the program crashed here five times out of seven.
    The other two attempts, both on daily bibisect version 2016-02-18,
    crashed after I closed the Data Ranges dialog an additional three
    times, one of those times using by typing <Esc>.


The backtrace is from a local build of commit 9b0069c, pulled around
2016-04-02 22:40 UTC, and then hacked in module connectivity,
configured ...
    CC=ccache /usr/bin/gcc
    CXX=ccache /usr/bin/g++
    --enable-option-checking=fatal
    --enable-dbgutil
    --enable-debug
    --enable-crashdump
    --without-system-postgresql
    --without-myspell-dicts
    --with-extra-buildid
    --without-doxygen
    --with-external-tar=/home/terry/lo_hacking/git/src
built and running on debian-stretch.
Comment 1 Terrence Enger 2016-04-04 01:34:12 UTC
I am setting status NEW and keywords regression, haveBacktrace,
bibisected.


Working in the daily Linux bibisect repository, I see from `git bisect
bad` (newlines added) ...

    847bec043bfd666ba9dee0862dc5d4bdaed8072b is the first bad commit
    commit 847bec043bfd666ba9dee0862dc5d4bdaed8072b
    Author: Miklos Vajna <vmiklos@collabora.co.uk>
    Date:   Thu Feb 18 05:55:48 2016 +0100

        2016-02-18: source-hash-2966d57bdfdd40a55e31408f7da75b415e809d8e

    :100644 100644 5de63c4bb870ad9309b23ffea9761c32dbf5f3d4
        77d763572d429b1e442d335da8f83b7abd4fefa7 M	build-info.txt
    :040000 040000 8c5676e9ce5b279fad76e8a601c899d38075a411
        13c62217314ffc01bbf5b461768ed2443cc423a8 M	opt

and from `git bisect log` (newlines added) ...

    # bad: [1c8099cd1ebfe4c29caaa4e8b531f582592dada3] 2016-04-02:
        source-hash-72cbcf97fadd46a6895797beb37aaa379e015855
    # good: [69eedb44a433e3be69137a83238a4184785c752f] 2015-11-25:
        source-hash-7289a140fc68dc898ba2b2357cc960968195f236
    git bisect start '1c8099cd1ebfe4c29caaa4e8b531f582592dada3'
        '69eedb44a433e3be69137a83238a4184785c752f'
    # good: [b6f80a4506e047f8101cda8500006848880ee304] 2016-01-28:
        source-hash-eea67332da825306abd3e49450850abb323eb91c
    git bisect good b6f80a4506e047f8101cda8500006848880ee304
    # bad: [839e38aedff92a7b6c3e7d458af414eb1cde2576] 2016-02-29:
        source-hash-2b24b6b6c3b18d7d934b3f76cc7a787c498ece4a
    git bisect bad 839e38aedff92a7b6c3e7d458af414eb1cde2576
    # good: [c485f11895ab87cb4ad67f983858279531128f21] 2016-02-13:
        source-hash-f2df80410b34faa88740f2c0c2b021c74a19d5ca
    git bisect good c485f11895ab87cb4ad67f983858279531128f21
    # bad: [f101b3ee173bbfcba5549ed874c961a3e5f709d4] 2016-02-21:
        source-hash-943af6cd6f07c2e0ccd067f661d8dc664eea1e4b
    git bisect bad f101b3ee173bbfcba5549ed874c961a3e5f709d4
    # good: [fecd40b78f1e447ebff489556eafb3df4264be2a] 2016-02-17:
        source-hash-dc9ec9f359ddc91a3aedbe38e6079b0555fb03f9
    git bisect good fecd40b78f1e447ebff489556eafb3df4264be2a
    # bad: [f32e21bf39235f8be89fe12ffa4aa50b821bcdda] 2016-02-19:
        source-hash-1fccc616d205b7d7011d66d4e4c719b62876eec5
    git bisect bad f32e21bf39235f8be89fe12ffa4aa50b821bcdda
    # bad: [847bec043bfd666ba9dee0862dc5d4bdaed8072b] 2016-02-18:
        source-hash-2966d57bdfdd40a55e31408f7da75b415e809d8e
    git bisect bad 847bec043bfd666ba9dee0862dc5d4bdaed8072b
    # first bad commit: [847bec043bfd666ba9dee0862dc5d4bdaed8072b] 2016-02-18:
        source-hash-2966d57bdfdd40a55e31408f7da75b415e809d8e


I deemed a version "good" after leaving the Data Ranges dialog five
times, leaving from both tabs and by both the <Cancel> button and
typing <Esc>.
Comment 2 Terrence Enger 2016-04-04 01:37:56 UTC
In the bug description, I intended to refer to bug 96365 as the
not-quite-duplicate bug report.
Comment 3 Markus Mohrhard 2016-04-04 17:16:02 UTC
I made an error in the commit msg: commit is https://cgit.freedesktop.org/libreoffice/core/commit/?id=3ada44f631490f8910ce0bcf55353f70d7d0df6d
Comment 4 Maxim Monastirsky 2016-04-04 17:52:26 UTC
*** Bug 98914 has been marked as a duplicate of this bug. ***
Comment 5 Terrence Enger 2016-04-05 23:03:01 UTC
Thank you, Maxim.  The problem is gone with daily Linux dbgutil
bibisect version 2016-04-05.  I am setting status VERIFIED FIXED.
Comment 6 Commit Notification 2016-04-12 12:06:37 UTC
Markus Mohrhard committed a patch related to this issue.
It has been pushed to "libreoffice-5-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=44d5d9fdb3f35ae09f7e9938609553cd3a4c4412&h=libreoffice-5-1

tdf#99069: lock the solar mutex before updating sidebar

It will be available in 5.1.3.

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 7 Commit Notification 2019-01-03 17:33:17 UTC
Zdeněk Crhonek committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/+/dd2972d4c323afddc1eca90c88fe6240f40685dd%5E%21

uitest for bug tdf#99069

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