Skip to content
Snippets Groups Projects
  1. Jul 18, 2012
  2. Jul 17, 2012
  3. Jul 12, 2012
  4. Jul 09, 2012
  5. Jun 27, 2012
  6. Jun 25, 2012
    • Eelco Dolstra's avatar
      When using chroots, use a private PID namespace · 1db38ae8
      Eelco Dolstra authored
      In a private PID namespace, processes have PIDs that are separate from
      the rest of the system.  The initial child gets PID 1.  Processes in
      the chroot cannot see processes outside of the chroot.  This improves
      isolation between builds.  However, processes on the outside can see
      processes in the chroot and send signals to them (if they have
      appropriate rights).
      
      Since the builder gets PID 1, it serves as the reaper for zombies in
      the chroot.  This might turn out to be a problem.  In that case we'll
      need to have a small PID 1 process that sits in a loop calling wait().
      1db38ae8
    • Eelco Dolstra's avatar
      Use a private UTS namespace to provide a deterministic host/domain name to builders · 54890864
      Eelco Dolstra authored
      In chroot builds, set the host name to "localhost" and the domain name
      to "(none)" (the latter being the kernel's default).  This improves
      determinism a bit further.
      
      P.S. I have to idea what UTS stands for.
      54890864
  7. Jun 23, 2012
    • Eelco Dolstra's avatar
      Update release notes · 8da6772e
      Eelco Dolstra authored
      8da6772e
    • Eelco Dolstra's avatar
      Improve error message · 723a68c8
      Eelco Dolstra authored
      723a68c8
    • Eelco Dolstra's avatar
      In chroot builds, use a private SysV IPC namespace · 7ffa523f
      Eelco Dolstra authored
      This improves isolation a bit further, and it's just one extra flag in
      the unshare() call.
      
      P.S. It would be very cool to use CLONE_NEWPID (to put the builder in
      a private PID namespace) as well, but that's slightly more risky since
      having a builder start as PID 1 may cause problems.
      7ffa523f
    • Eelco Dolstra's avatar
      In chroot builds, use a private network namespace · df716c98
      Eelco Dolstra authored
      On Linux it's possible to run a process in its own network namespace,
      meaning that it gets its own set of network interfaces, disjunct from
      the rest of the system.  We use this to completely remove network
      access to chroot builds, except that they get a private loopback
      interface.  This means that:
      
      - Builders cannot connect to the outside network or to other processes
        on the same machine, except processes within the same build.
      
      - Vice versa, other processes cannot connect to processes in a chroot
        build, and open ports/connections do not show up in "netstat".
      
      - If two concurrent builders try to listen on the same port (e.g. as
        part of a test), they no longer conflict with each other.
      
      This was inspired by the "PrivateNetwork" flag in systemd.
      df716c98
  8. Jun 19, 2012
Loading