Hi David,
The error that is being reported is the absence of an ack from
jsspawnhelper (CHILD_IS_ALIVE)
indicating that it has started (and is about to exec the target exe).
The child process should continue to run; reporting the status of the child
will hopefully lead to identifying why the child process terminated
without exec'ing the target.
Thanks, Roger
On 6/17/19 6:16 PM, David Holmes wrote:
Hi Roger,
On 18/06/2019 6:00 am, Roger Riggs wrote:
Hi,
Updated:
http://cr.openjdk.java.net/~rriggs/webrev-spawn-diag-8225192-3/
+ if (WIFEXITED(status)) {
+ snprintf(ebuf, sizeof ebuf,
+ "Failed to exec spawn helper: pid: %d, exit value: %d",
+ pid, WEXITSTATUS(status));
WIFEXITED returns non-zero when the process terminates normally, so
that need not be an error AFAICS.
David
On 6/17/19 2:20 PM, Martin Buchholz wrote:
On Mon, Jun 17, 2019 at 10:47 AM Thomas Stüfe
<thomas.stu...@gmail.com <mailto:thomas.stu...@gmail.com>> wrote:
Hi Roger,
I think this is fine.
Could you please also print out WIFEXITED and WIFSIGNALLED? Since
I am not
sure if the WEXITSTATUS contains valid info if WIFEXITED is 0,
or just
random noise. Same for WTERMSIG.
I separated the causes, both exits are abnormal since the exec
didn't' do what was expected.
Only an exit status of 0 is 'normal' and in this case, that is not
what expected.
Regards, Roger
Alternatively:
if (WIFEXITED) print("exited normaly with %d", WEXITSTATUS)
else if (WIFSTOPPED) print("terminated with signal %d", WTERMSIG)
thanks for doing this.
I also think it's best to have different detail messages for normal
termination and death by signal, as some shells do.
I might put the exception throwing code into a separate function.