Skip to content

Conversation

@droberts195
Copy link

In normal operation native controllers are not expected to write
anything to stdout or stderr. However, if due to an error or
something unexpected with the environment a native controller
does write something to stdout or stderr then it will block if
nothing is reading that output.

This change makes the stdout and stderr of native controllers
reuse the same stdout and stderr as the Elasticsearch JVM (which
are by default redirected to es.stdout.log and es.stderr.log) so
that if something unexpected is written to native controller
output then:

  1. The native controller process does not block, waiting for
    something to read the output
  2. We can see what the output was, making it easier to debug
    obscure environmental problems

Backport of #56491

In normal operation native controllers are not expected to write
anything to stdout or stderr.  However, if due to an error or
something unexpected with the environment a native controller
does write something to stdout or stderr then it will block if
nothing is reading that output.

This change makes the stdout and stderr of native controllers
reuse the same stdout and stderr as the Elasticsearch JVM (which
are by default redirected to es.stdout.log and es.stderr.log) so
that if something unexpected is written to native controller
output then:

1. The native controller process does not block, waiting for
   something to read the output
2. We can see what the output was, making it easier to debug
   obscure environmental problems

Backport of elastic#56491
@droberts195
Copy link
Author

@elasticmachine update branch

@droberts195 droberts195 merged commit dec7c21 into elastic:6.8 May 14, 2020
@droberts195 droberts195 deleted the inherit_stderr_stdout_on_controller_spawn_68 branch May 14, 2020 06:12
droberts195 pushed a commit that referenced this pull request May 14, 2020
@droberts195
Copy link
Author

@dolaru and @pheyos I reverted this (in 6.8) only, as I could not work out why it caused the ML QA tests to lock up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants