in logger/buffered_logger.go [150:171]
func (bl *bufferedLogger) saveLogMessagesToRingBuffer(
ctx context.Context,
f io.Reader,
source string,
) error {
if err := bl.Read(ctx, f, source, bl.bufReadSizeInBytes, bl.saveSingleLogMessageToRingBuffer); err != nil {
err := fmt.Errorf("failed to read logs from %s pipe: %w", source, err)
debug.SendEventsToLog(DaemonName, err.Error(), debug.ERROR, 1)
return err
}
// No messages in the pipe, send signal to closed pipe channel.
debug.SendEventsToLog(DaemonName, fmt.Sprintf("Pipe %s is closed", source), debug.INFO, 1)
bl.buffer.closedPipesCount++
// If both container pipes are closed, wake up the Dequeue goroutine which is waiting on wait.
if bl.buffer.closedPipesCount == expectedNumOfPipes {
bl.buffer.isClosed = true
bl.buffer.wait.Broadcast()
}
return nil
}