open-consul/command/connect/envoy
Daniel Nephin 0a39ba2c54 envoy: fix bootstrap deadlock caused by a full named pipe
Normally the named pipe would buffer up to 64k, but in some cases when a
soft limit is reached, they will start only buffering up to 4k.
In either case, we should not deadlock.

This commit changes the pipe-bootstrap command to first buffer all of
stdin into the process, before trying to write it to the named pipe.
This allows the process memory to act as the buffer, instead of the
named pipe.

Also changed the order of operations in `makeBootstrapPipe`. The new
test added in this PR showed that simply buffering in the process memory
was not enough to fix the issue. We also need to ensure that the
`pipe-bootstrap` process is started before we try to write to its
stdin. Otherwise the write will still block.

Also set stdout/stderr on the subprocess, so that any errors are visible
to the user.
2021-05-31 18:53:17 -04:00
..
pipe-bootstrap envoy: fix bootstrap deadlock caused by a full named pipe 2021-05-31 18:53:17 -04:00
testdata connect: update supported envoy versions to 1.18.3, 1.17.3, 1.16.4, and 1.15.5 (#10231) 2021-05-12 14:06:06 -05:00
bootstrap_config.go support env var expansion in envoy statsd urls 2021-03-18 18:57:28 -04:00
bootstrap_config_test.go support env var expansion in envoy statsd urls 2021-03-18 18:57:28 -04:00
bootstrap_tpl.go Support Incremental xDS mode (#9855) 2021-04-29 13:54:05 -05:00
envoy.go command: when generating envoy bootstrap configs to stdout do not mix informational logs into the json (#9980) 2021-04-07 14:22:52 -05:00
envoy_oss_test.go Add DC and NS support for Envoy metrics (#9207) 2020-11-16 16:37:19 -07:00
envoy_test.go command: when generating envoy bootstrap configs to stdout do not mix informational logs into the json (#9980) 2021-04-07 14:22:52 -05:00
exec_test.go envoy: fix bootstrap deadlock caused by a full named pipe 2021-05-31 18:53:17 -04:00
exec_unix.go envoy: fix bootstrap deadlock caused by a full named pipe 2021-05-31 18:53:17 -04:00
exec_unsupported.go cli: avoid passing envoy bootstrap configuration as arguments (#4747) 2018-10-10 16:55:34 +01:00
flags.go connect: switch the default gateway port from 443 to 8443 (#9116) 2020-11-06 20:47:29 -05:00
flags_test.go connect: switch the default gateway port from 443 to 8443 (#9116) 2020-11-06 20:47:29 -05:00