Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

[19.03 backport] logger: fix follow logs for max-file=1 ENGCORE-1165 #378

Merged

Commits on Sep 23, 2019

  1. logger: fix follow logs for max-file=1

    In case jsonlogfile is used with max-file=1 and max-size set,
    the log rotation is not perfomed; instead, the log file is closed
    and re-open with O_TRUNC.
    
    This situation is not handled by the log reader in follow mode,
    leading to an issue of log reader being stuck forever.
    
    This situation (file close/reopen) could be handled in waitRead(),
    but fsnotify library chose to not listen to or deliver this event
    (IN_CLOSE_WRITE in inotify lingo).
    
    So, we have to handle this by checking the file size upon receiving
    io.EOF from the log reader, and comparing the size with the one received
    earlier. In case the new size is less than the old one, the file was
    truncated and we need to seek to its beginning.
    
    Fixes moby#39235.
    
    Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
    (cherry picked from commit 9cd24ba)
    Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
    kolyshkin committed Sep 23, 2019
    Configuration menu
    Copy the full SHA
    1e13f66 View commit details
    Browse the repository at this point in the history