Skip to content

Commit

Permalink
fix: make console writer thread-safe
Browse files Browse the repository at this point in the history
  • Loading branch information
floreks committed May 14, 2024
1 parent c005a7a commit 3ba87e7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
8 changes: 5 additions & 3 deletions pkg/harness/sink/console.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
)

func (in *ConsoleWriter) Write(p []byte) (n int, err error) {
in.Lock()
defer in.Unlock()
n, err = in.buffer.Write(p)
in.bufferSizeChan <- in.buffer.Len()
return
Expand All @@ -26,7 +28,7 @@ func (in *ConsoleWriter) bufferedFlush() {
return
}

klog.V(log.LogLevelTrace).InfoS("flushing logs", "buffer_size", n, "limit", in.bufferSizeLimit)
klog.V(log.LogLevelTrace).InfoS("flushing buffered logs", "buffer_size", n, "limit", in.bufferSizeLimit, "step_id", in.id)
// flush logs
read := n
if read > in.bufferSizeLimit {
Expand All @@ -47,7 +49,7 @@ func (in *ConsoleWriter) flush(ignoreLimit bool) {
}

if ignoreLimit {
klog.V(log.LogLevelTrace).InfoS("flushing all remaining logs", "buffer_size", n)
klog.V(log.LogLevelTrace).InfoS("flushing all remaining logs", "buffer_size", n, "step_id", in.id)
// flush all logs
if err := in.client.AddStackRunLogs(in.id, in.buffer.String()); err != nil {
klog.Error(err)
Expand All @@ -56,7 +58,7 @@ func (in *ConsoleWriter) flush(ignoreLimit bool) {
}

// flush logs up to the limit
klog.V(log.LogLevelTrace).InfoS("flushing logs", "buffer_size", n, "limit", in.bufferSizeLimit)
klog.V(log.LogLevelTrace).InfoS("flushing logs", "buffer_size", n, "limit", in.bufferSizeLimit, "step_id", in.id)
read := n
if read > in.bufferSizeLimit {
read = in.bufferSizeLimit
Expand Down
2 changes: 2 additions & 0 deletions pkg/harness/sink/console_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package sink
import (
"bytes"
"context"
"sync"
"time"

console "github.com/pluralsh/deployment-operator/pkg/client"
Expand All @@ -14,6 +15,7 @@ const (
)

type ConsoleWriter struct {
sync.Mutex
ctx context.Context
buffer *bytes.Buffer
// id is a stack run id that logs should be appended to
Expand Down

0 comments on commit 3ba87e7

Please sign in to comment.