From 9ffbb27deb383b33dcb627d6b3e817d1ab4ddeb5 Mon Sep 17 00:00:00 2001 From: Drew Bailey <2614075+drewbailey@users.noreply.github.com> Date: Fri, 12 Jun 2020 09:17:35 -0400 Subject: [PATCH] only report tasklogger is running if both stdout and stderr are still running (#8155) * only report tasklogger is running if both stdout and stderr are still running * changelog --- CHANGELOG.md | 2 ++ client/logmon/logmon.go | 10 +++------- client/logmon/logmon_test.go | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3070ad98e..060049556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ BUG FIXES: * api: Fixed a bug where setting connect sidecar task resources could fail [[GH-7993](https://github.com/hashicorp/nomad/issues/7993)] * client: Fixed a bug where artifact downloads failed on redirects [[GH-7854](https://github.com/hashicorp/nomad/issues/7854)] * csi: Validate empty volume arguments in API. [[GH-8027](https://github.com/hashicorp/nomad/issues/8027)] + * client: Fixed a bug where stdout/stderr were not properly reopened for + community task drivers. [[GH-8155](https://github.com/hashicorp/nomad/issues/8155)] ## 0.11.2 (May 14, 2020) diff --git a/client/logmon/logmon.go b/client/logmon/logmon.go index f230b3b08..dfc31e2b4 100644 --- a/client/logmon/logmon.go +++ b/client/logmon/logmon.go @@ -110,14 +110,10 @@ type TaskLogger struct { // IsRunning will return true as long as one rotator wrapper is still running func (tl *TaskLogger) IsRunning() bool { - if tl.lro != nil && tl.lro.isRunning() { - return true - } - if tl.lre != nil && tl.lre.isRunning() { - return true - } + lroRunning := tl.lro != nil && tl.lro.isRunning() + lreRunning := tl.lre != nil && tl.lre.isRunning() - return false + return lroRunning && lreRunning } func (tl *TaskLogger) Close() { diff --git a/client/logmon/logmon_test.go b/client/logmon/logmon_test.go index 8f0fa8f1c..a3e62408b 100644 --- a/client/logmon/logmon_test.go +++ b/client/logmon/logmon_test.go @@ -234,8 +234,8 @@ func TestLogmon_Start_restart(t *testing.T) { }) require.True(impl.tl.IsRunning()) - // Close stdout and assert that logmon no longer writes to the file - require.NoError(stdout.Close()) + // Close stderr and assert that logmon no longer writes to the file + // Keep stdout open to ensure that IsRunning requires both require.NoError(stderr.Close()) testutil.WaitForResult(func() (bool, error) {