Bug #9419

eatmydata is not being used in the build chroot

Added by intrigeri 2015-05-17 10:42:42 . Updated 2015-07-03 03:37:03 .

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Build system
Target version:
Start date:
2015-05-17
Due date:
% Done:

100%

Feature Branch:
bugfix/9419-eatmydata-in-build-chroot;live-build:tails/debian-old-2.0+faketime
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description

We’re using eatmydata to speed up the build a bit. However, it’s not actually used for most of the build, since:

  • we currently install eamydata via the first huge apt-get install run, so this one is not covered by eatmydata, which is too bad since it’s likely the biggest generator of disk writes;
  • live-build’s Chroot function cleans the environment and only passes through a few environment variables to the commands it runs. We need to make it forward LD_PRELOAD. And while we’re at it, we can as well forward FAKETIME, which will help when working on Feature #5630.

Subtasks


Related issues

Related to Tails - Bug #9523: Discrepancy between eatmydata versions breaks Jessie build Resolved 2015-06-03
Blocks Tails - Feature #5630: Reproducible builds Resolved 2015-09-23

History

#1 Updated by intrigeri 2015-05-17 10:42:59

#2 Updated by intrigeri 2015-05-17 10:44:26

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 20
  • Feature Branch set to live-build:tails/debian-old-2.0+faketime

The patch has been written and tested. Next step is to update the Debian package and make it so everyone uses the new one when building ISO images.

#3 Updated by intrigeri 2015-05-18 15:46:58

  • % Done changed from 20 to 30

Package updated, but the suite it was uploaded to (bugfix-9419-eatmydata-in-build-chroot) only supports i386. That’s an arch:all package anyway, so one can test it by manually installing (with dpkg) the .deb on their builder VM, even if it’s most likely an amd64 one.

#4 Updated by intrigeri 2015-05-18 18:04:14

  • Description updated

#5 Updated by intrigeri 2015-05-18 18:04:37

  • Feature Branch changed from live-build:tails/debian-old-2.0+faketime to bugfix/9419-eatmydata-in-build-chroot;live-build:tails/debian-old-2.0+faketime

#6 Updated by intrigeri 2015-05-20 06:52:12

  • Assignee changed from intrigeri to anonym
  • % Done changed from 30 to 50
  • QA Check set to Ready for QA

#7 Updated by anonym 2015-05-27 14:17:45

  • Status changed from In Progress to Fix committed
  • % Done changed from 50 to 100

Applied in changeset commit:6593a03a3e290846b94e06defe7d6e6999b594c1.

#8 Updated by anonym 2015-05-27 14:19:14

  • Assignee deleted (anonym)
  • QA Check changed from Ready for QA to Pass

All instances of

ERROR: ld.so: object '/usr/lib/libeatmydata/libeatmydata.so' from LD_PRELOAD cannot be preloaded: ignored.


have disappeared, which is nice. OTOH my builds aren’t much faster:

Without this fix:

real    17m41.917s
user    21m23.228s
sys     4m25.841s

With this fix:

real    17m26.058s
user    20m22.752s
sys     4m15.108s

(I did take into account all manners of caching when doing this “benchmark”.)

Not a huge gain. Any way, the big thing is how this will help Feature #5630.

#9 Updated by intrigeri 2015-06-03 09:31:50

  • related to Bug #9523: Discrepancy between eatmydata versions breaks Jessie build added

#10 Updated by intrigeri 2015-07-03 03:37:03

  • Status changed from Fix committed to Resolved