Bug 112646 - GenericSolarMutex::doRelease() calls std::abort() when LO used through COM
Summary: GenericSolarMutex::doRelease() calls std::abort() when LO used through COM
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
6.0.0.0.alpha0+
Hardware: All Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:6.0.0
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-25 14:19 UTC by Tor Lillqvist
Modified: 2017-10-30 15:50 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Reproducer (472.38 KB, application/zip)
2017-09-25 14:22 UTC, Tor Lillqvist
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tor Lillqvist 2017-09-25 14:19:58 UTC
Description:
Noticeable at least at a7ce8404befaf59df5f1a476c8dd414633bbf823 . (Will check whether possibly has gone away since.)

Will attach a zip archive with reproduction executable.

- Build LO with debugging symbols

- Start it, instdir/program/soffice

- Attach it in VS

- In another Cygwin shell, go to where this zip is unpacked and run:
  THISDIR='c:/where/ever/this/is/' ./BugReproducer.exe

After the "Closing document" you will see the abort() hit in VS.


Steps to Reproduce:
.

Actual Results:  
.

Expected Results:
.


Reproducible: Always

User Profile Reset: No

Additional Info:


User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38
Comment 1 Tor Lillqvist 2017-09-25 14:22:57 UTC
Created attachment 136526 [details]
Reproducer
Comment 2 Jan-Marek Glogowski 2017-09-25 15:17:18 UTC
I just get a "Open calc /srv/dev/COM-bug/BugReproducer.xls", but nothing else happens. I also tried starting LO with "make debugrun" - no change.

THISDIR="$(pwd)/" ./BugReproducer.exe
Comment 3 Tor Lillqvist 2017-09-25 18:45:07 UTC
I don't think $(pwd) will work as is a Cygwin-format pathname? (Hmm, or does Cygwin automatically translate it to Windows format before exporting to the Windows process?)

I guess one possibllity is that some Registry magic is not present on that machine; have you even installed LO from an installer on it? I am not entirely sure how the COM stuff works. But presumably some magic in the Registry takes care of the fact that the source code of the program contains only "com.sun.star.ServiceManager" and somehow that is supposed to make it contact the running soffice.bin.
Comment 4 Jan-Marek Glogowski 2017-09-26 11:50:00 UTC
To get a Windows patch, the correct call is actually 

THISDIR="$(cygpath -w -a -l $(pwd))\\" ./BugReproducer.exe
Comment 5 Commit Notification 2017-09-27 04:54:47 UTC
Jan-Marek Glogowski committed a patch related to this issue.
It has been pushed to "master":

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

tdf#112646 Flush the clipboard holding SolarMutex

It will be available in 6.0.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 6 Xisco Faulí 2017-10-28 18:08:07 UTC
A polite ping to Jan-Marek Glogowski: is this bug fixed? if so, could you please close it as RESOLVED FIXED ? Thanks