Bug 3723 - smart: Performance enhancement for attemptonly and complementary installs
Summary: smart: Performance enhancement for attemptonly and complementary installs
Status: RESOLVED FIXED
Alias: None
Product: Package Management Issues
Classification: Runtime
Component: package-management-issues (show other bugs)
Version: 1.4
Hardware: x86 Multiple
: Medium enhancement
Target Milestone: 1.5
Assignee: Mark Hatle
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2013-01-15 19:01 UTC by Mark Hatle
Modified: 2013-09-11 14:19 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments
Patch to speed up many complementary installs (1.84 KB, patch)
2013-03-12 16:18 UTC, Mark Hatle
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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