@@ -28,12 +28,13 @@ import (
2828 "bytes"
2929 "encoding/json"
3030 "errors"
31- "github.com/AliceO2Group/Control/common/utils"
3231 "io"
3332 "os/exec"
3433 "syscall"
3534 "time"
3635
36+ "github.com/AliceO2Group/Control/common/utils"
37+
3738 "github.com/AliceO2Group/Control/common/controlmode"
3839 "github.com/AliceO2Group/Control/common/event"
3940 "github.com/AliceO2Group/Control/common/logger/infologger"
@@ -73,6 +74,8 @@ func (t *basicTaskBase) startBasicTask() (err error) {
7374 var errStdout , errStderr error
7475 var stdoutBuf , stderrBuf bytes.Buffer
7576 var stdout , stderr io.Writer
77+ // To be closed after task is done
78+ var stdoutLog , stderrLog * io.PipeWriter
7679
7780 if t .Tci .Stdout == nil {
7881 none := "none"
@@ -85,7 +88,7 @@ func (t *basicTaskBase) startBasicTask() (err error) {
8588
8689 switch * t .Tci .Stdout {
8790 case "stdout" :
88- stdoutLog : = log .WithPrefix ("task-stdout" ).
91+ stdoutLog = log .WithPrefix ("task-stdout" ).
8992 WithField ("level" , infologger .IL_Support ).
9093 WithField ("partition" , t .knownEnvironmentId .String ()).
9194 WithField ("detector" , t .knownDetector ).
@@ -97,7 +100,7 @@ func (t *basicTaskBase) startBasicTask() (err error) {
97100 stdout = io .MultiWriter (stdoutLog , & stdoutBuf )
98101
99102 case "all" :
100- stdoutLog : = log .WithPrefix ("task-stdout" ).
103+ stdoutLog = log .WithPrefix ("task-stdout" ).
101104 WithField ("level" , infologger .IL_Support ).
102105 WithField ("partition" , t .knownEnvironmentId .String ()).
103106 WithField ("detector" , t .knownDetector ).
@@ -112,7 +115,7 @@ func (t *basicTaskBase) startBasicTask() (err error) {
112115
113116 switch * t .Tci .Stderr {
114117 case "stdout" :
115- stderrLog : = log .WithPrefix ("task-stderr" ).
118+ stderrLog = log .WithPrefix ("task-stderr" ).
116119 WithField ("level" , infologger .IL_Support ).
117120 WithField ("partition" , t .knownEnvironmentId .String ()).
118121 WithField ("detector" , t .knownDetector ).
@@ -124,7 +127,7 @@ func (t *basicTaskBase) startBasicTask() (err error) {
124127 stderr = io .MultiWriter (stderrLog , & stderrBuf )
125128
126129 case "all" :
127- stderrLog : = log .WithPrefix ("task-stderr" ).
130+ stderrLog = log .WithPrefix ("task-stderr" ).
128131 WithField ("level" , infologger .IL_Support ).
129132 WithField ("partition" , t .knownEnvironmentId .String ()).
130133 WithField ("detector" , t .knownDetector ).
@@ -142,7 +145,6 @@ func (t *basicTaskBase) startBasicTask() (err error) {
142145 stderrIn , _ := t .taskCmd .StderrPipe ()
143146
144147 err = t .taskCmd .Start ()
145-
146148 if err != nil {
147149 log .WithField ("partition" , t .knownEnvironmentId .String ()).
148150 WithFields (logrus.Fields {
@@ -172,6 +174,13 @@ func (t *basicTaskBase) startBasicTask() (err error) {
172174 err = taskCmd .Wait ()
173175 // ^ when this unblocks, the task is done
174176
177+ if stdoutLog != nil {
178+ stdoutLog .Close ()
179+ }
180+ if stderrLog != nil {
181+ stderrLog .Close ()
182+ }
183+
175184 pendingState := mesos .TASK_FINISHED
176185 var tciCommandStr string
177186 if t .Tci .Value != nil {
0 commit comments