From b3c8a87100bfffcd411542c2957d1cdbc980920d Mon Sep 17 00:00:00 2001 From: kylecarbs Date: Sat, 9 Jul 2022 20:19:35 +0000 Subject: [PATCH 1/3] fix: Add `trap` to agent startup script to sleep on failure The Docker Terraform provider removes containers immediately on exit, making it difficult to debug a failed container start with Coder. This will sleep on exit and output a friendly log, which should assist with debugging failures. --- provisionersdk/agent.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/provisionersdk/agent.go b/provisionersdk/agent.go index b4667863ed8cb..e17a627e9974c 100644 --- a/provisionersdk/agent.go +++ b/provisionersdk/agent.go @@ -18,6 +18,7 @@ Start-Process -FilePath $env:TEMP\sshd.exe -ArgumentList "agent" -PassThru` linuxScript = `#!/usr/bin/env sh set -eux pipefail +trap 'echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep 86400' EXIT BINARY_DIR=$(mktemp -d -t coder.XXXXXX) BINARY_NAME=coder BINARY_URL=${ACCESS_URL}bin/coder-linux-${ARCH} @@ -39,6 +40,7 @@ exec ./$BINARY_NAME agent` darwinScript = `#!/usr/bin/env sh set -eux pipefail +trap 'echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep 86400' EXIT BINARY_DIR=$(mktemp -d -t coder.XXXXXX) BINARY_NAME=coder cd $BINARY_DIR From 255afab8bd70b5633c1a0e3d3d6b90ae91233b85 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Sun, 10 Jul 2022 16:26:22 -0500 Subject: [PATCH 2/3] Update provisionersdk/agent.go Co-authored-by: Mathias Fredriksson --- provisionersdk/agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisionersdk/agent.go b/provisionersdk/agent.go index e17a627e9974c..d0d9d8adaf830 100644 --- a/provisionersdk/agent.go +++ b/provisionersdk/agent.go @@ -18,7 +18,7 @@ Start-Process -FilePath $env:TEMP\sshd.exe -ArgumentList "agent" -PassThru` linuxScript = `#!/usr/bin/env sh set -eux pipefail -trap 'echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep 86400' EXIT +trap 'echo === Agent script exited with non-zero code. Sleeping 24h to preserve logs... && sleep 86400' EXIT BINARY_DIR=$(mktemp -d -t coder.XXXXXX) BINARY_NAME=coder BINARY_URL=${ACCESS_URL}bin/coder-linux-${ARCH} From 74850e21ff9d395f851ea2b47caf6c24fadc70d0 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Sun, 10 Jul 2022 16:26:27 -0500 Subject: [PATCH 3/3] Update provisionersdk/agent.go Co-authored-by: Mathias Fredriksson --- provisionersdk/agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisionersdk/agent.go b/provisionersdk/agent.go index d0d9d8adaf830..d4bc9f2cf1d6c 100644 --- a/provisionersdk/agent.go +++ b/provisionersdk/agent.go @@ -40,7 +40,7 @@ exec ./$BINARY_NAME agent` darwinScript = `#!/usr/bin/env sh set -eux pipefail -trap 'echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep 86400' EXIT +trap 'echo === Agent script exited with non-zero code. Sleeping 24h to preserve logs... && sleep 86400' EXIT BINARY_DIR=$(mktemp -d -t coder.XXXXXX) BINARY_NAME=coder cd $BINARY_DIR