We have an issue with the MediaWiki tests when running them on the 4GB RAM instances. We would need either RAM or Swap to be added to the Nodepool image.
Project Name: contintcloud
Private Flavor: 6G RAM / 2 vCPU / 40 Disk
Running the long PHPUnit tests on Trusty / Zend php 5.5: tests fail to execute external commands and get: fork() - cannot allocate memory. That happens when php memory usage is roughly at 1900MBytes (maybe before that).
PHP invokes fork() which on Linux is clone(). It uses copy-on-write to avoid duplicate memory pages, but Linux Virtual Memory manager still verifies whether the forked process would be able to consume all the RAM its allocated. The host already has 2500Mbytes+ used, and asking for 1900 Mbytes more is an ENOMEM.
Nodepool uses a m1.medium flavor: 2 vCPUs 40G disk and 4G RAM
We have no straightforward way to add a Swap partition in the image that is created. I have been digging in the diskimage-builder utility but haven't found any easy way to do so.
The low hanging fruit would thus be to create a new flavor with 6GB RAM. Since the issue only occurs on Zend 5.5 / Trusty, in Nodepool we would only change the snapshot-ci-trusty then rebuild the snapshot. Eg: 6G RAM / 2 vCPU / 40 Disk.
Alternatively, instead of adding more RAM, we could create a flavor with less disk (40G -> 35G) and a 5G Swap. But I have no idea how the boot would manage to find it though, potentially labelled disk.swap. Can be experimented later on.