brettwooldridge / NuProcess

Low-overhead, non-blocking I/O, external Process implementation for Java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Undocumented exit code MAX_INT-1

almson opened this issue · comments

I've noticed that when my Kubernetes pod shuts down, child processes often die with exit code 2147483646 ie MAX_INT-1, which they did not do under commons-exec. (Commons-exec would sometimes return its own INVALID_EXITVALUE in this case.) I couldn't find this code documented.

Moreover, there is a bit of a discrepancy in the docs. waitFor says it will return Integer.MIN_VALUE if the timeout is reached while NuProcessHandler.onExit returns A value of Integer.MIN_VALUE indicates some kind of launch failure. A value of Integer.MAX_VALUE indicates an unknown or expected failure mode.

It would great be to have better clarity on possible exit codes and when they should be expected.

I should say that a Java library should try to communicate exceptional conditions with exceptions (or return an object with properties), and not by overloading the exit code which the command itself might return.