Bug 91090 - Crash when launching extension manager
Summary: Crash when launching extension manager
Status: CLOSED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: Other All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:5.0.0
Keywords: haveBacktrace
Depends on:
Blocks:
 
Reported: 2015-05-05 05:58 UTC by Julien Nabet
Modified: 2015-05-07 10:23 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:


Attachments
bt with debug symbols (5.05 KB, text/plain)
2015-05-05 05:58 UTC, Julien Nabet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Julien Nabet 2015-05-05 05:58:14 UTC
Created attachment 115329 [details]
bt with debug symbols

On pc Debian x86-64 with master sources updated 2 days ago and enable-dbgutil, I get crash when I'm trying to launch extension manager.
Comment 1 Julien Nabet 2015-05-05 05:59:05 UTC
Michael: thought you might be interested in this one since it seems related to Vclptr too.
Comment 2 Commit Notification 2015-05-06 09:46:16 UTC
Michael Meeks committed a patch related to this issue.
It has been pushed to "master":

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

tdf#91090 - avoid de-referencing DIALOG_NO_PARENT (-1)

It will be available in 5.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 3 Julien Nabet 2015-05-06 09:53:06 UTC
Even if a better fix is expected according to your comment in the patch, let's put this one to FIXED.
Anyway ,thank you Michael for your quick feedback! :-)
Comment 4 Michael Meeks 2015-05-06 09:59:44 UTC
Program received signal SIGSEGV, Segmentation fault.
Reference (pBody=0xffffffffffffffff, this=0x7fffcc038f60) at /data/opt/libreoffice/master/include/rtl/ref.hxx:63
63	            m_pBody->acquire();
(gdb) bt
#0  Reference (pBody=0xffffffffffffffff, this=0x7fffcc038f60) at /data/opt/libreoffice/master/include/rtl/ref.hxx:63
#1  VclPtr (pBody=0xffffffffffffffff, this=0x7fffcc038f60) at /data/opt/libreoffice/master/include/vcl/vclptr.hxx:97
#2  dp_gui::TheExtensionManager::TheExtensionManager (this=0x7fffcc038f08, pParent=0xffffffffffffffff, xContext=
    uno::Reference to (cppu::ComponentContext *) 0x7fffe2402418)
    at /data/opt/libreoffice/master/desktop/source/deployment/gui/dp_gui_theextmgr.cxx:58
#3  0x00007fffb4f4d227 in dp_gui::TheExtensionManager::get (xContext=uno::Reference to (cppu::ComponentContext *) 0x7fffe2402418, 
    xParent=empty uno::Reference, extensionURL="") at /data/opt/libreoffice/master/desktop/source/deployment/gui/dp_gui_theextmgr.cxx:490
#4  0x00007fffb4f4527b in dp_gui::ServiceImpl::startExecuteModal (this=0x7fffcc038d28, xListener=empty uno::Reference)
    at /data/opt/libreoffice/master/desktop/source/deployment/gui/dp_gui_service.cxx:261
#5  0x00007fffb4f44c8f in dp_gui::ServiceImpl::trigger (this=0x7fffcc038d28, rEvent=...)
    at /data/opt/libreoffice/master/desktop/source/deployment/gui/dp_gui_service.cxx:303

* Amazing:

desktop/source/deployment/gui/dp_gui_theextmgr.cxx:    vcl::Window* pParent = DIALOG_NO_PARENT;
filter/source/xsltdialog/xmlfilterdialogcomponent.cxx:        vcl::Window* pParent = DIALOG_NO_PARENT;
include/vcl/dialog.hxx:#define DIALOG_NO_PARENT (reinterpret_cast<vcl::Window*>(sal_IntPtr(-1)))
sw/qa/tiledrendering/tiledrendering.cxx:        ModalDialog(DIALOG_NO_PARENT, "TiledRendering", "qa/sw/ui/tiledrendering.ui"),
toolkit/source/awt/vclxtoolkit.cxx:                    pParent = DIALOG_NO_PARENT;
vcl/source/uipreviewer/previewer.cxx:        VclPtrInstance<Dialog> pDialog(DIALOG_NO_PARENT, WB_STDDIALOG | WB_SIZEABLE);
vcl/source/window/dialog.cxx:    // DIALOG_NO_PARENT: explicitly don't have a parent for this Dialog
vcl/source/window/dialog.cxx:    else if( pParent == DIALOG_NO_PARENT )

* Ideally - all these need removing & a new parameter passing to
  Dialog to capture that semantic. Or a split constructor for this use-case ...
Comment 5 Commit Notification 2015-05-06 12:13:22 UTC
Noel Grandin committed a patch related to this issue.
It has been pushed to "master":

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

cleanup DIALOG_NO_PARENT, follow on to tdf#91090

It will be available in 5.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 Michael Meeks 2015-05-07 10:23:31 UTC
Thanks Noel ! =)