• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 8873
0%
main: 93%

Build:
Build:
LAST BUILD BRANCH: deps/reqwest-0.13
DEFAULT BRANCH: main
Ran 01 Feb 2016 07:17PM UTC
Jobs 7
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
8873

push

travis-ci

kwlzn
Add process-level buildroot validation to NailgunExecutor.

In the case of stale pids for nailgun processes, when a given pid is checked for liveness and the new process is also a java process it can pass the process executable name check (`java` == `java`) but not actually be a nailgun process owned by the buildroot. Because the `NailgunExecutor` fingerprint also does not match a given new fingerprint (`None` != `$NEW_SHA`), the current logic treats this as a "I am running but have a new fingerprint and thus need to restart" case and attempts to kill the stale pid before starting a new nailgun. This can cause unintended behavior such as permissions related exceptions as seen in #2659 or worse, the killing of unrelated java processes.

This change addresses this case by adding an inline check for a matching nailgun buildroot argument in the `NailgunExecutor.is_alive()` check.

Fixes #2659.

Testing Done:
CI is green @ https://travis-ci.org/pantsbuild/pants/builds/105578526

Additional manual testing:

While monitoring with `ps`:

    1) `./pants clean-all && ./pants compile testprojects/src/java::` in `~/dev/pants` which starts nailgun owned by `~/dev/pants`.
    2) `cp -avf ~/dev/pants ~/dev/pants2 && rm -rf ~/dev/pants2/.pants.d` to wipe cache without removing `.pids` (creating a stale pid situation)
    3) `cd ~/dev/pants2 && ./pants compile testprojects/src/java::`

Verified that new nailgun processes are launched for the second buildroot and the first buildroot's processes are untouched.

Bugs closed: 2659, 2855

Reviewed at https://rbcommons.com/s/twitter/r/3393/
Jobs
ID Job ID Ran Files Coverage
1 8873.1 (CI_FLAGS="-cjlpn 'Various pants self checks'") 01 Feb 2016 07:17PM UTC 0
Travis Job 8873.1
4 8873.4 (CI_FLAGS="-fkmsrcjlp 'Python contrib tests'") 01 Feb 2016 07:24PM UTC 0
Travis Job 8873.4
6 8873.6 (CI_FLAGS="-fkmsrjlpn -i 1/6 'Python integration tests for pants - shard 2'") 01 Feb 2016 07:23PM UTC 0
Travis Job 8873.6
7 8873.7 (CI_FLAGS="-fkmsrjlpn -i 2/6 'Python integration tests for pants - shard 3'") 01 Feb 2016 07:31PM UTC 0
Travis Job 8873.7
8 8873.8 (CI_FLAGS="-fkmsrjlpn -i 3/6 'Python integration tests for pants - shard 4'") 01 Feb 2016 07:28PM UTC 0
Travis Job 8873.8
9 8873.9 (CI_FLAGS="-fkmsrjlpn -i 4/6 'Python integration tests for pants - shard 5'") 01 Feb 2016 07:34PM UTC 0
Travis Job 8873.9
10 8873.10 (CI_FLAGS="-fkmsrjlpn -i 5/6 'Python integration tests for pants - shard 6'") 01 Feb 2016 07:34PM UTC 0
Travis Job 8873.10
Source Files on build 8873
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #8873
  • f9c03075 on github
  • Prev Build on master (#8872)
  • Next Build on master (#8875)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc