|
Bugzilla – Full Text Bug Listing |
| Summary: | installation crashes in libzypp | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.0 | Reporter: | Stephan Kulow <coolo> |
| Component: | libzypp | Assignee: | Michael Andres <ma> |
| Status: | RESOLVED FIXED | QA Contact: | Duncan Mac-Vicar <dmacvicar> |
| Severity: | Critical | ||
| Priority: | P5 - None | CC: | locilka, lslezak, ma, mvidner, schubi, szotsaki |
| Version: | Beta 1 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
y2log
new log file |
||
Probably in
Pkg::ResolvableProperties ("", `package, "")
Ladislav is there a possibility to make this call alone without YaST (command line call) ? I would like to reproduce that error in a small environment. Pkg::ResolvableProperties() is defined in Resolvable_Properties.cc file, line 101.
The binding iterates over the pool and returns properties of the resolvables which match the parameters. (in this case all packages).
Some like this:
zypp::Resolvable::Kind kind = zypp::ResTraits<zypp::Package>::kind;
for (zypp::ResPool::byKind_iterator it = zypp_ptr()->pool().byKindBegin(kind);
it != zypp_ptr()->pool().byKindEnd(kind);
++it)
{
zypp::Package::constPtr pkg = boost::dynamic_pointer_cast<const zypp::Package>(it->resolvable());
std::string tmp = pkg->location().filename().asString();
}
According to the log it crashes in zypp::Package::location() function. I suppose when using ByKind itrerator pkg pointer shouldn't be null.
As Coolo told me, it happens on DVD installaton only. CD installation works correctly. So it makes no sense to reproduce the error on a running system. It crased it zypp::sat::Solvable::get(). In that case the pkg pointer cannot be null. Otherwise it would has crashed before. sorry, CD installation == live-installer installation. The CDs on machcd2 are only internal test builds. (In reply to comment #1 from Lukas Ocilka) > Probably in > Pkg::ResolvableProperties ("", `package, "") Not probably but certainly, as evidenced by the brand new feature which makes a dying yast more verbose: y2log:11347:2008-04-16 09:43:19 <0> linux(3492) [liby2] SymbolEntry.cc(setValue):107 SymbolEntry::setValue (one_type@0xb3980d08 = '`package') y2log:11370:2008-04-16 09:43:19 <0> linux(3492) [libycp] ExecutionEnvironment.cc(pushframe):105 Push frame ResolvableProperties ("", one_type, "") ok, PkgFunctions::ResolvablePropertiesEx calls zypp::Package::location(this=0x0) - I would think the bug is in pkg-bindings the actual crash is fixed, but we don't know yet the reason *** Bug 380645 has been marked as a duplicate of this bug. *** ok, new installation images work fine now. Created attachment 208518 [details]
new log file
The debug output schubi and me added yesterday is hit very, very often
Found it. It's a broken index in the pool. It originates from the fact that unlike all other kinds of sat solvables, source packages do not have a prefix indicating the kind (e.g. pattern:default, patch:glibc, ..). satlib uses the same name for packages and source packages and instead of a prefix (ab)uses the architecture of the source package, setting it to SCR or NOSRC. byKind<Package> wrongly lists source packages, and for them the dynamic_pointer_cast returns NULL. fixed in libzypp-4.13.2 |
Created attachment 208212 [details] y2log log file attached. This was after pressing "Install" - possibly during image deployment