Bug 3723

Summary: smart: Performance enhancement for attemptonly and complementary installs
Product: [Runtime] Package Management Issues Reporter: Mark Hatle <mark.hatle>
Component: package-management-issuesAssignee: Mark Hatle <mark.hatle>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: Medium CC: bluelightning, richard.purdie, sgw
Version: 1.4   
Target Milestone: 1.5   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)
Attachments:
Description Flags
Patch to speed up many complementary installs none

Description Mark Hatle 2013-01-15 19:01:44 UTC
Smart does not currently have a way to say "Install these things, but if any of them -- or their dependencies fail -- just keep trying."  Due to this, the complementary (and related attemptonly) install happens one package at a time.  

For a limited set of packages this is fine from a performance perspective.  However on a large filesystem (such as core-image-sato), enabling -dev, -doc, -dbg, and -staticdev to the build can result in many additional hours of install.
Comment 1 Mark Hatle 2013-03-12 16:18:04 UTC
Created attachment 1113 [details]
Patch to speed up many complementary installs
Comment 2 Mark Hatle 2013-03-12 16:18:36 UTC
The original code implementation attempts to install one package at a time, and then moves on to the next one.  For a large (complementary) package set, this can take a significant amount of time.

The existing code was written in this way because it is possible for complementary packages (or attemptonly packages) to fail, because certain dependencies may not have been generated -- or the attemptonly package itself might not exist.

Without making a change to smart, a way to resolve this issue would be run the attemptonly/complementary install as a single unit -- and then upon failure fall back to the old style one at a time install.

See the attached patch.
Comment 3 Mark Hatle 2013-04-02 19:44:45 UTC
The failure mode for the recommend based install can be replicated with the eglibc package and not installing the eglibc-extra-nss-dev.  See the oe-core mailing list.  Date approx April 1-2nd..  title: [OE-Core][PATCH] eglibc: Let eglibc-extra-nss-dev exist as empty package

(I'm unable to login to the list server to get a direct link to the thread.)
Comment 4 Mark Hatle 2013-09-11 14:19:49 UTC
oe-core commit: bdf07b1698d228dc7ff555199a269b1ff8ceca19