Files
atlantis/server
Luke Kysow b1e32643f5 Fix bug where Atlantis hangs on terraform crash.
Because of some weirdness with how terraform executes (it forks itself
and assigns the parent's stderr and stdout file descriptors to the
child) when terraform panics, Go's exec.CombinedOutput() blocks
indefinitely even though the terraform process has exited.

To handle this, we switch to using os.Pipe for the cmd's stderr/out
which for some reason allows Go to know when the process has exited.
Unfortunately, this brings up a new problem when reading the output from
that pipe. For some reason, after a terraform crash, we never get an EOF
on the pipe and so as we again get in a situation where we're blocking
indefinitely. To handle this, I've added an edge case where we look at
the log lines and if its the end of a terraform panic, we break out of
the loop.

Thanks Terraform 0.12-alpha for discovering this bug!
2019-01-10 17:42:30 -05:00
..
2018-12-11 08:31:59 -06:00
2018-03-14 10:16:48 -07:00
2018-11-21 11:33:31 -06:00
2018-11-21 11:33:31 -06:00
2018-11-21 11:33:31 -06:00
2018-11-21 11:33:31 -06:00
2018-11-21 11:33:31 -06:00