about summary refs log tree commit diff
path: root/src/liballoc_jemalloc
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-12-12 20:01:13 -0800
committerAlex Crichton <alex@alexcrichton.com>2016-12-13 00:13:14 -0800
commit5e991e0afb403fab6edfac096ecd5bb0190449ad (patch)
treef0205637fb880d1fdb03c03acdda95b4436e889f /src/liballoc_jemalloc
parentb4b1e5ece21fb497877350c3d6defa143c88076c (diff)
downloadrust-5e991e0afb403fab6edfac096ecd5bb0190449ad.tar.gz
rust-5e991e0afb403fab6edfac096ecd5bb0190449ad.zip
Fix travis builds
After reading some articles [1] [2] yesterday about Docker and the "init"
process I got to thinking about the problems that we've been seeing on Travis.
The basic problem is that a Linux system may need an "init" process to work
properly when processes become zombies. Docker by default doesn't handle this
and the root process typically isn't an init process, so this can occasionally
cause quite a few problems.

We've been seeing spurious errors on Travis inside containers which look like
OOM and such, but my guess is that zombie processes were being reparented to the
top-level shell. The shell didn't expect the zombies and then behaved very
strangely.

This commit fixes these problems by using Yelp's "dumb-init" program [2] as the
init process in all of our containers. This ensures that there's a valid init
ready to reap children when they're reparented, which our test suite apparently
generates a bunch of throughout the tests and such.

[1]: https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/
[2]: https://engineeringblog.yelp.com/2016/01/dumb-init-an-init-for-docker.html
Diffstat (limited to 'src/liballoc_jemalloc')
0 files changed, 0 insertions, 0 deletions