From dc001d28fc9c40d99ee55841ef8a502c3fdb90eb Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Wed, 29 Mar 2023 15:51:04 +0400 Subject: [PATCH] fix: output of `talosctl logs` might be corruped The line was not copied properly, so sometimes `talosctl logs` output was garbled as the buffer was re-used. Signed-off-by: Andrey Smirnov (cherry picked from commit 289b41fe4b3af7bd4e1e61a1ca30dc1ed2b0d027) --- cmd/talosctl/cmd/talos/logs.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/talosctl/cmd/talos/logs.go b/cmd/talosctl/cmd/talos/logs.go index 9ba3f9e88..1583c6300 100644 --- a/cmd/talosctl/cmd/talos/logs.go +++ b/cmd/talosctl/cmd/talos/logs.go @@ -13,6 +13,7 @@ import ( "sync" criconstants "github.com/containerd/containerd/pkg/cri/constants" + "github.com/siderolabs/gen/slices" "github.com/spf13/cobra" "google.golang.org/grpc/codes" @@ -134,11 +135,14 @@ func (slicer *lineSlicer) chopper(r io.Reader, hostname string) { scanner := bufio.NewScanner(r) for scanner.Scan() { + line := scanner.Bytes() + line = slices.Copy(line, len(line)) + slicer.respCh <- &common.Data{ Metadata: &common.Metadata{ Hostname: hostname, }, - Bytes: scanner.Bytes(), + Bytes: line, } } }