Bug Hunting Session
Bug 30825 - LibO 3.3.0beta2 crashes when trying to update extensions where the update feature is not programmed.
Summary: LibO 3.3.0beta2 crashes when trying to update extensions where the update fea...
Status: CLOSED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: Caolán McNamara
URL:
Whiteboard:
Keywords:
: 30871 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-10-13 03:09 UTC by Giuseppe Castagno (aka beppec56)
Modified: 2011-03-01 08:35 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Giuseppe Castagno (aka beppec56) 2010-10-13 03:09:30 UTC
Platform: Ubuntu 9.10 64 bit, Kde windows system.

The bug is reproducible, with a fairly recent build.

To reproduce, just install the extensions and you got this behavior, even though it seems they don't have update enabled.

1) Install Libo, I installed it from deb packages, as standard; it ended up in /opt/libreoffice3, installed extension packages as well.

2) installed some of my extension, as well.

3) trying an update, just to test.

4) LibO chrashed.

5) removed all the extensions, but mine (they have update enabled as well): no crashes.

6) did a fake update of one of my extensions, trying to update: no problem there, no crashed and extension updated.

Commecting with gdb and after a crash, I got this bt:

0x00007f1238908048 in ?? () from /opt/libreoffice3/program/../basis-link/program/libunoxmllx.so
(gdb) bt
#0  0x00007f1238908048 in ?? () from /opt/libreoffice3/program/../basis-link/program/libunoxmllx.so
#1  0x00007f12389076e4 in ?? () from /opt/libreoffice3/program/../basis-link/program/libunoxmllx.so
#2  0x00007f1238907671 in ?? () from /opt/libreoffice3/program/../basis-link/program/libunoxmllx.so
#3  0x00007f123627dba7 in ?? () from /opt/libreoffice3/program/../basis-link/program/updatefeed.uno.so
#4  0x00007f1236281133 in ?? () from /opt/libreoffice3/program/../basis-link/program/updatefeed.uno.so
#5  0x00007f123627d43e in ?? () from /opt/libreoffice3/program/../basis-link/program/updatefeed.uno.so
#6  0x00007f1257811232 in ?? () from /opt/libreoffice3/program/../basis-link/program/libdeploymentmisclx.so
#7  0x00007f125781148f in ?? () from /opt/libreoffice3/program/../basis-link/program/libdeploymentmisclx.so
#8  0x00007f1257812add in dp_misc::getOnlineUpdateInfos(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XExtensionManager> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> const&, std::vector<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, std::allocator<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> > > const*, std::vector<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any>, std::allocator<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any> > >&) () from /opt/libreoffice3/program/../basis-link/program/libdeploymentmisclx.so
#9  0x00007f123867b54d in ?? () from /opt/libreoffice3/program/../basis-link/program/deploymentguilx.uno.so
#10 0x00007f123867115e in ?? () from /opt/libreoffice3/program/../basis-link/program/deploymentguilx.uno.so
#11 0x00007f12386713fa in ?? () from /opt/libreoffice3/program/../basis-link/program/deploymentguilx.uno.so
#12 0x00007f125999ca5c in ?? () from /opt/libreoffice3/program/../basis-link/ure-link/lib/libuno_sal.so.3
#13 0x00007f1258275a04 in start_thread () from /lib/libpthread.so.0
#14 0x00007f125876ed4d in clone () from /lib/libc.so.6
#15 0x0000000000000000 in ?? ()
(gdb) cont

So a question.
What flags should I use to enable a build with minimal symbol generation in order to have a more meaningful trace?
I mean minimal, not full symbols.

After the 'gdb cont' above the Kde crash reporter is started and reports OpenOffice.org as chashed, may be LibreOffice there is better?
Should be somewhere in soffice.bin, hard to find.
Comment 1 Giuseppe Castagno (aka beppec56) 2010-10-13 03:13:09 UTC
Forgot to mention build was today, pulled this morning.
Comment 2 Giuseppe Castagno (aka beppec56) 2010-10-13 03:35:58 UTC
redo the same gdb thing but form a 'bin/ooinstall -l' installation.
Now bt seems having more info with symbols:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f69d08a3910 (LWP 1603)]
0x00007f69d3251048 in XPath::CXPathAPI::eval(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&, rtl::OUString const&) () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libunoxmllx.so
(gdb) bt
#0  0x00007f69d3251048 in XPath::CXPathAPI::eval(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&, rtl::OUString const&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libunoxmllx.so
#1  0x00007f69d32506e4 in XPath::CXPathAPI::selectNodeList(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&, rtl::OUString const&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libunoxmllx.so
#2  0x00007f69d3250671 in XPath::CXPathAPI::selectSingleNode(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&, rtl::OUString const&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libunoxmllx.so
#3  0x00007f69d08aaba7 in (anonymous namespace)::UpdateInformationProvider::getChildNode(com::sun::star::uno::Reference<com::sun::star::xml::dom::XNode> const&, rtl::OUString const&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/updatefeed.uno.so
#4  0x00007f69d08ae133 in (anonymous namespace)::UpdateInformationEnumeration::nextElement() () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/updatefeed.uno.so
#5  0x00007f69d08aa43e in (anonymous namespace)::UpdateInformationProvider::getUpdateInformation(com::sun::star::uno::Sequence<rtl::OUString> const&, rtl::OUString const&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/updatefeed.uno.so
#6  0x00007f69eeb1d232 in dp_misc::(anonymous namespace)::getUpdateInformation(com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> const&, com::sun::star::uno::Sequence<rtl::OUString> const&, rtl::OUString const&, com::sun::star::uno::Any&) () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libdeploymentmisclx.so
#7  0x00007f69eeb1d48f in dp_misc::(anonymous namespace)::getDefaultUpdateInfos(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> const&, std::map<rtl::OUString, dp_misc::UpdateInfo, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, dp_misc::UpdateInfo> > >&, std::vector<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any>, std::allocator<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any> > >&) ()
   from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libdeploymentmisclx.so
#8  0x00007f69eeb1eadd in dp_misc::getOnlineUpdateInfos(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XExtensionManager> const&, com::sun::star::uno::Reference<com::sun::star::deployment::XUpdateInformationProvider> const&, std::vector<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, std::allocator<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage> > > const*, std::vector<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any>, std::allocator<std::pair<com::sun::star::uno::Reference<com::sun::star::deployment::XPackage>, com::sun::star::uno::Any> > >&) () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/libdeploymentmisclx.so
#9  0x00007f69d2f2e54d in dp_gui::UpdateDialog::Thread::execute() () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/deploymentguilx.uno.so
#10 0x00007f69d2f2415e in dp_gui::Thread::run() () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/deploymentguilx.uno.so
#11 0x00007f69d2f243fa in threadFunc () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/program/deploymentguilx.uno.so
#12 0x00007f69f0ca8a5c in osl_thread_start_Impl () from /home/beppe/LibO-b/LibO_master-head-wrk-bin/program/../basis-link/ure-link/lib/libuno_sal.so.3
#13 0x00007f69ef581a04 in start_thread () from /lib/libpthread.so.0
#14 0x00007f69efa7ad4d in clone () from /lib/libc.so.6
#15 0x0000000000000000 in ?? ()
Comment 3 Giuseppe Castagno (aka beppec56) 2010-10-13 06:29:29 UTC
More information:
I configured with:

./autogen.sh --with-distro=LibreOfficeLinux  --with-gcc-speedup=ccache  --with-git --with-num-cpus=2 --with-lang='en-US it fr pt-BR' --enable-kde=no --enable-kde4=yes

After some tries I discovered that the crash happens only if one among the installed extension doesn't have the update element present, e.g. the node:

<update-information>
    <src xlink:href="http://a.server.com/extensions/update.xml" />
</update-information>

is not in the extension file 'description.xml'.
Comment 4 Giuseppe Castagno (aka beppec56) 2010-10-13 13:03:11 UTC
I downloaded a deb beta2 package from here:

http://mirrors.supportex.net/tdf/libreoffice/testing/3.3.0-beta2/deb/x86_64

installed it and tested: it shows the same behavior, crash when trying to update extensions for which no update is needed, because the update feature is not in their configuration.
Comment 5 Giuseppe Castagno (aka beppec56) 2010-10-14 01:34:29 UTC
@caolanm: while trying to understand this I built desktop, extensions and unoxml modules with debug=true.
I have a log of what LibO spit out while running before the crash.
Do you thing it will be useful to attach?
Comment 6 Caolán McNamara 2010-10-14 01:37:08 UTC
oky doky, installing one of my own extensions reproduces this
Comment 7 Caolán McNamara 2010-10-14 05:35:14 UTC
ownership problems in unoxml, fixed with http://cgit.freedesktop.org/libreoffice/filters/commit/?id=3e46d50d71eb3861ce73120e06dc6b8a4b17a36a and similar
Comment 8 Caolán McNamara 2010-10-21 04:20:40 UTC
*** Bug 30871 has been marked as a duplicate of this bug. ***
Comment 9 Giuseppe Castagno (aka beppec56) 2010-10-23 08:49:22 UTC
Look OK in current dev build.
Comment 10 Michael Meeks 2011-03-01 08:35:45 UTC
similar problem on the stable branch still present in bug#33701