sebastianbergmann/phpunit — Issue #432: Possible issue: Process isolation fails with latest Jenkins CI with Jenkins
Author: asartalo
Created: 2011-12-05 03:38:54+00:00
State: open

Sorry but this must be a problem with Jenkins but this may also be relevant to PHPUnit.

I've created a test project which you can clone to see the errors.

```
git://github.com/asartalo/jenkins-ci-phpunit-test.git
```

My environment:

* Ubuntu
* Jenkins 1.441 installed by following the instructions here: http://pkg.jenkins-ci.org/debian/ (Jenkins runs as a daemon)
* PHP 5.3.6-13ubuntu3.2 with Suhosin-Patch
* PHPUnit 3.6.4

After upgrading to Jenkins 1.441 after my previous Jenkins installation (1.409.1) was crashing for some other problem, when I run builds with tests that have process isolation, I get some cryptic errors:

```
[exec] 1) Acme\Tests\ProcessIsolationTest::testFirstProcess
[exec] RuntimeException: Invalid arguments: no command supplied
[exec] usage: daemon [options] [--] [cmd arg...]
[exec] options:
[exec]
[exec] -h, --help - Print a help message then exit
[exec] -V, --version - Print a version message then exit
[exec] -v, --verbose[=level] - Set the verbosity level
[exec] -d, --debug[=level] - Set the debugging level
[exec]
[exec] -C, --config=path - Specify the configuration file
[exec] -N, --noconfig - Bypass the system configuration file
[exec] -n, --name=name - Guarantee a single named instance
[exec] -X, --command=cmd - Specify the client command as an option
[exec] -P, --pidfiles=/dir - Override standard pidfile location
[exec] -F, --pidfile=/path - Override standard pidfile name and location
[exec]
[exec] -u, --user=user[:group] - Run the client as user[:group]
[exec] -R, --chroot=path - Run the client with path as root
[exec] -D, --chdir=path - Run the client in directory path
[exec] -m, --umask=umask - Run the client with the given umask
[exec] -e, --env="var=val" - Set a client environment variable
[exec] -i, --inherit - Inherit environment variables
[exec] -U, --unsafe - Allow execution of unsafe executable
[exec] -S, --safe - Deny execution of unsafe executable
[exec] -c, --core - Allow core file generation
[exec]
[exec] -r, --respawn - Respawn the client when it terminates
[exec] -a, --acceptable=# - Minimum acceptable client duration (seconds)
[exec] -A, --attempts=# - Respawn # times on error before delay
[exec] -L, --delay=# - Delay between spawn attempt bursts (seconds)
[exec] -M, --limit=# - Maximum number of spawn attempt bursts
[exec] --idiot - Idiot mode (trust root with the above)
[exec]
[exec] -f, --foreground - Run the client in the foreground
[exec] -p, --pty[=noecho] - Allocate a pseudo terminal for the client
[exec]
[exec] -l, --errlog=spec - Send daemon's error output to syslog or file
[exec] -b, --dbglog=spec - Send daemon's debug output to syslog or file
[exec] -o, --output=spec - Send client's output to syslog or file
[exec] -O, --stdout=spec - Send client's stdout to syslog or file
[exec] -E, --stderr=spec - Send client's stderr to syslog or file
[exec]
[exec] --running - Check if a named daemon is running
[exec] --restart - Restart a named daemon client
[exec] --stop - Terminate a named daemon process
[exec]
[exec] /usr/bin/phpunit:44
```

This didn't happen before the upgrade.

I tried this on a separate machine (Mac OS X Leopard) and ran jenkins by running the war file on terminal directly and the error did not appear:

```
$ java -jar jenkins.war
```

I would be really grateful if anyone can shed light on this issue.