moby/daemon/logger
Brian Goff 7d4dd91a52 logfile: Check if log is closed on close error during rotate
This prevents getting into a situation where a container log cannot make
progress because we tried to rotate a file, got an error, and now the
file is closed. The next time we try to write a log entry it will try
and rotate again but error that the file is already closed.

I wonder if there is more we can do to beef up this rotation logic.
Found this issue while investigating missing logs with errors in the
docker daemon logs like:

```
Failed to log message for json-file: error closing file: close <file>:
file already closed
```

I'm not sure why the original rotation failed since the data was no
longer available.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit 3989f91075)
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2020-05-07 12:22:58 -07:00
..
awslogs awslogs: fix flaky TestLogBlocking unit test 2019-09-25 21:43:08 +02:00
etwlogs Add canonical import comment 2018-02-05 16:51:57 -05:00
fluentd bump fluent/fluent-logger-golang v1.4.0 2019-04-16 11:06:30 +02:00
gcplogs Various code-cleanup 2018-05-23 17:50:54 +02:00
gelf logger/gelf: Skip empty lines to comply with spec 2019-11-26 12:54:18 +01:00
journald journald/read: fix/unify errors 2019-08-09 16:50:39 -07:00
jsonfilelog Use assert.NilError() instead of assert.Assert() 2019-01-21 13:16:02 +01:00
local Use assert.NilError() instead of assert.Assert() 2019-01-21 13:16:02 +01:00
logentries Add canonical import comment 2018-02-05 16:51:57 -05:00
loggerutils logfile: Check if log is closed on close error during rotate 2020-05-07 12:22:58 -07:00
splunk Be more conservative for Windows in TestFrequency for Splunk 2019-09-25 17:31:30 +02:00
syslog Add options validation to syslog logger test 2018-12-24 20:43:41 +01:00
templates Update tests to use gotest.tools 👼 2018-06-13 09:04:30 +02:00
adapter.go Adds PartialLogMetadata to encode protobuf for logger plugins 2019-04-09 16:14:33 +05:00
adapter_test.go daemon.ContainerLogs(): fix resource leak on follow 2018-09-06 11:47:42 -07:00
copier.go Add metrics for log failures/partials 2018-05-10 17:22:37 -04:00
copier_test.go Improve partial message support in logger 2018-04-11 13:26:28 -07:00
factory.go Various code-cleanup 2018-05-23 17:50:54 +02:00
logger.go Cleanup duplication in daemon files 2018-11-13 10:42:57 +08:00
logger_test.go Improve partial message support in logger 2018-04-11 13:26:28 -07:00
loginfo.go Add canonical import comment 2018-02-05 16:51:57 -05:00
metrics.go Add metrics for log failures/partials 2018-05-10 17:22:37 -04:00
plugin.go Entropy cannot be saved 2019-06-11 17:40:09 +02:00
plugin_unix.go Fix logging plugin crash unrecoverable 2018-05-14 16:51:56 -04:00
plugin_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
proxy.go Add canonical import comment 2018-02-05 16:51:57 -05:00
ring.go Update documentation for RingLogger's ring buffer 2018-05-16 18:52:50 -06:00
ring_test.go Update documentation for RingLogger's ring buffer 2018-05-16 18:52:50 -06:00