Skip to content

Commit 46fe32b

Browse files
committed
fixes
Signed-off-by: fahed dorgaa <[email protected]> fixes Signed-off-by: fahed dorgaa <[email protected]>
1 parent 6f46d77 commit 46fe32b

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

pkg/cmd/container/logs.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ import (
2222
"os"
2323
"os/signal"
2424
"syscall"
25-
"time"
25+
26+
"github.com/containerd/log"
2627

2728
"github.com/containerd/containerd"
2829
"github.com/containerd/containerd/errdefs"
29-
"github.com/containerd/log"
3030
"github.com/containerd/nerdctl/pkg/api/types"
3131
"github.com/containerd/nerdctl/pkg/api/types/cri"
3232
"github.com/containerd/nerdctl/pkg/clientutil"
@@ -91,7 +91,11 @@ func Logs(ctx context.Context, client *containerd.Client, container string, opti
9191
// Setup goroutine to send stop event if container task finishes:
9292
go func() {
9393
<-waitCh
94-
log.G(ctx).Debugf("container task has finished, sending kill signal to log viewer")
94+
// Wait for logger to process remaining logs after container exit
95+
if err = logging.WaitForLogger(dataStore, l[labels.Namespace], found.Container.ID()); err != nil {
96+
log.L.WithError(err).Error("failed to wait for logger shutdown")
97+
}
98+
log.L.Debugf("container task has finished, sending kill signal to log viewer")
9599
stopChannel <- os.Interrupt
96100
}()
97101
}

pkg/logging/logging.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ func getContainerWait(ctx context.Context, hostAddress string, config *logging.C
177177
// If task was not found, it's possible that the container runtime is still being created.
178178
// Retry every 100ms.
179179
ticker := time.NewTicker(100 * time.Millisecond)
180+
defer ticker.Stop()
180181
for {
181182
select {
182183
case <-ctx.Done():
183-
return nil, fmt.Errorf("timed out waiting for container task to start")
184+
return nil, errors.New("timed out waiting for container task to start")
184185
case <-ticker.C:
185186
task, err = con.Task(ctx, nil)
186187
if err != nil {
@@ -207,7 +208,7 @@ func loggingProcessAdapter(ctx context.Context, driver Driver, dataStore, hostAd
207208
buf := make([]byte, 32<<10)
208209
_, err := io.CopyBuffer(writer, reader, buf)
209210
if err != nil {
210-
logrus.Errorf("failed to copy stream: %s", err)
211+
log.L.Errorf("failed to copy stream: %v", err)
211212
}
212213
}
213214
go copyStream(config.Stdout, stdoutW)
@@ -244,7 +245,7 @@ func loggingProcessAdapter(ctx context.Context, driver Driver, dataStore, hostAd
244245

245246
exitCh, err := getContainerWait(ctx, hostAddress, config)
246247
if err != nil {
247-
logrus.Errorf("failed to get container task wait channel: %v", err)
248+
log.L.Errorf("failed to get container task wait channel: %v", err)
248249
return
249250
}
250251
<-exitCh

0 commit comments

Comments
 (0)