|
Bugzilla – Full Text Bug Listing |
| Summary: | yast2 Segmentation fault | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.1 | Reporter: | andrea florio <andrea> |
| Component: | YaST2 | Assignee: | Michael Andres <ma> |
| Status: | RESOLVED FIXED | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Major | ||
| Priority: | P2 - High | CC: | ma, tgoettlicher |
| Version: | Final | ||
| Target Milestone: | --- | ||
| Hardware: | x86 | ||
| OS: | openSUSE 11.1 | ||
| Whiteboard: | maint:released:11.1:24006 | ||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | yast2 logs | ||
|
Description
andrea florio
2009-01-27 23:39:30 UTC
Created attachment 268110 [details]
yast2 logs
any news? Moving to yast2 maintainers. Can you reproduce the same issue with ncurses UI? yes it crasch also in ncurses UI, but there i receie NO exception te strange thing is that it crasch only if i try to select the banshee repo, not if i choose the others Ok, I too reproduced both with Qt and ncurses UI (Gtk does not use PoolQuery to filter the packages), unfortunately the backtrace and valgrind output are not being too verbose here. The code leading to the crash is something along these lines:
zypp::PoolQuery query;
query.addRepo( currentRepo.info().alias() );
query.addKind(zypp::ResKind::package);
for( zypp::PoolQuery::Selectable_iterator it = query.selectableBegin();
it != query.selectableEnd(); it++)
{
// do something with (*it)
}
(now it loops through all the selectables, but never gets past the loop):
This is what valgrind says: y2base: /usr/include/boost/intrusive_ptr.hpp:149: T* boost::intrusive_ptr<T>::operator->() const [with T = zypp::ui::Selectable]: Assertion `p_ != 0' failed. and the backtrace (from curses, Qt one is in the log above): Frame 0: /usr/lib/liby2.so.2 log_backtrace() Frame 1: /usr/lib/liby2.so.2 signal_handler(int) Frame 2: [0xffffe400] Frame 3: [0xffffe430] Frame 4: /lib/libc.so.6(gsignal+0x50) [0xb79ad990] Frame 5: /lib/libc.so.6(abort+0x188) [0xb79af2c8] Frame 6: /lib/libc.so.6(__assert_fail+0xee) [0xb79a678e] Frame 7: /usr/lib/YaST2/plugin/libpy2ncurses_pkg.so.2 NCPkgRepoTable::showRepoPackages() Not sure whether to keep major severity or raise to critical (because of the crash), as it only seems to happen with Banshee repo above: http://download.opensuse.org/repositories/Banshee/openSUSE_11.1 This looks like the PoolQuery iterator returns a NULL Selectable. This must not happen. Nice bug(s): 1) In the banshee metadata the patterns.xml.gz contains an empty pattern definition: <pattern /> 2) The satsolvers parser translates this entry into a package(!) with no name and version. 3) In libzypp finally, a package with no name and version is basically no problem, unless you ask for the corresponding Selectable. None was generated, and that's why the iterator unexpectedly returns NULL. 1) is up to the OBS projects maintainer. 2) and 3) are fixed in satsolver-0.13.4 and libzypp-5.28.1. Update released for: PackageKit, PackageKit-debuginfo, PackageKit-debugsource, PackageKit-devel, PackageKit-lang, gnome-packagekit, gnome-packagekit-debuginfo, gnome-packagekit-debugsource, gnome-packagekit-lang, libpackagekit-glib10, libpackagekit-glib10-devel, libpackagekit-qt10, libpackagekit-qt10-devel, libqdialogsolver1, libqdialogsolver1-debuginfo, libqdialogsolver1-debugsource, libqdialogsolver1-devel, libsatsolver, libsatsolver-debuginfo, libsatsolver-debugsource, libsatsolver-devel, libzypp, libzypp-debuginfo, libzypp-debugsource, libzypp-devel, perl-satsolver, python-satsolver, ruby-satsolver, satsolver-tools, yast2-pkg-bindings, yast2-pkg-bindings-debuginfo, yast2-pkg-bindings-debugsource, yast2-pkg-bindings-devel-doc, yast2-qt-pkg, yast2-qt-pkg-debuginfo, yast2-qt-pkg-debugsource, zypper, zypper-debuginfo, zypper-debugsource Products: openSUSE 11.1 (debug, i586, ppc, x86_64) |