Make valgrind task use its own docker image

RESOLVED FIXED in mozilla57

Status

Taskcluster
Task Configuration
P1
normal
RESOLVED FIXED
6 months ago
6 months ago

People

(Reporter: wcosta, Assigned: wcosta)

Tracking

unspecified
mozilla57
Dependency tree / graph

Details

MozReview Requests

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(1 attachment)

(Assignee)

Description

6 months ago
bug 1382280 tripled the size of desktop-build image because of installation of debug symbols. It is only used for valgrind, so let's move valgrind task to use its own image.
Comment hidden (mozreview-request)
(Assignee)

Updated

6 months ago
Blocks: 1338651

Comment 2

6 months ago
mozreview-review
Comment on attachment 8899427 [details]
Bug 1391806: Move valgrind task to its own docker image.

https://reviewboard.mozilla.org/r/170502/#review175978

This is OK to stop the current bleeding, but we're still going to have the issue where the valgrind-build image is huge. Can you file a followup on making install-debug-symbols.sh install a smaller set of debug symbols? It should be possible to pare it down quite a bit.

::: taskcluster/docker/valgrind-build/Dockerfile:2
(Diff revision 1)
>  # TODO remove VOLUME below when the base image is updated next.
>  FROM          taskcluster/centos6-build-upd:0.1.7.20170801103900

Is it possible to make this inherit from desktop-build so this isn't all copied, or does that not work with the current taskcluster docker image building setup? I worry that this is not going to be maintainable in the long-term.

If not, can you file a followup bug so we can figure out how to make this more maintainable?
Attachment #8899427 - Flags: review?(ted) → review+
(Assignee)

Updated

6 months ago
Blocks: 1392337
(Assignee)

Comment 3

6 months ago
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #2)
> Comment on attachment 8899427 [details]
> Bug 1391806: Move valgrind task to its own docker image.
> 
> https://reviewboard.mozilla.org/r/170502/#review175978
> 
> This is OK to stop the current bleeding, but we're still going to have the
> issue where the valgrind-build image is huge. Can you file a followup on
> making install-debug-symbols.sh install a smaller set of debug symbols? It
> should be possible to pare it down quite a bit.
> 
> ::: taskcluster/docker/valgrind-build/Dockerfile:2
> (Diff revision 1)
> >  # TODO remove VOLUME below when the base image is updated next.
> >  FROM          taskcluster/centos6-build-upd:0.1.7.20170801103900
> 
> Is it possible to make this inherit from desktop-build so this isn't all
> copied, or does that not work with the current taskcluster docker image
> building setup? I worry that this is not going to be maintainable in the
> long-term.
> 
> If not, can you file a followup bug so we can figure out how to make this
> more maintainable?

Unfortunately it is not possible, as there is no way to inherit from docker-image built images. I think :dustin has a bug/patch/idea for that.
Flags: needinfo?(dustin)

Comment 4

6 months ago
Pushed by wcosta@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/38df377bad4e
Move valgrind task to its own docker image. r=ted

Comment 5

6 months ago
I think we should not inherit from in-tree Docker images. Instead, images should be defined/built by composing reusable parts. Inheritance is just fragile. It also adds many more layers to the image, which slows down I/O on images given our current mechanism for exporting/importing images.
I have vague thoughts on the issue ("we should do that" and "some way to import an image from another task and edit it into the FROM line in a Dockerfile")
Flags: needinfo?(dustin)
(In reply to Gregory Szorc [:gps] from comment #5)
> I think we should not inherit from in-tree Docker images. Instead, images
> should be defined/built by composing reusable parts. Inheritance is just
> fragile. It also adds many more layers to the image, which slows down I/O on
> images given our current mechanism for exporting/importing images.

I'm fine with any way it can be accomplished, I would just like the valgrind-build Dockerfile to be like two lines: "reuse this stuff from desktop-build (however), add this extra script" instead of copying the whole desktop-build Dockerfile.
https://hg.mozilla.org/mozilla-central/rev/38df377bad4e
Status: ASSIGNED → RESOLVED
Last Resolved: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.