• Miek Gieben's avatar
    plugin/health: add OnRestartFailed (#2812) · 076b8d4f
    Miek Gieben authored
    Add OnReStartFailed which makes the health plugin stay up if the
    Corefile is corrupt and we revert to the previous version.
    
    Also needs a fix for the channel handling
    
    See #2659
    
    Testing it will log the following when restarting with a corrupted
    Corefile
    
    ~~~
    2019-05-04T18:01:59.431Z [INFO] linux/amd64, go1.12.4,
    CoreDNS-1.5.0
    linux/amd64, go1.12.4,
    [INFO] SIGUSR1: Reloading
    [INFO] Reloading
    [ERROR] Restart failed: Corefile:5 - Error during parsing: Unknown directive 'bdhfhdhj'
    [ERROR] SIGUSR1: starting with listener file descriptors: Corefile:5 - Error during parsing: Unknown directive 'bdhfhdhj'
    ~~~
    
    After which the curl still works.
    
    This also needed a change to reset the channel used for the metrics
    go-routine which gets closed on shutdown, otherwise you'll see:
    
    ~~~
    ^C[INFO] SIGINT: Shutting down
    panic: close of closed channel
    
    goroutine 90 [running]:
    github.com/coredns/coredns/plugin/health.(*health).OnFinalShutdown(0xc000089bc0, 0xc000063d88, 0x4afe6d)
    ~~~
    Signed-off-by: default avatarMiek Gieben <miek@miek.nl>
    076b8d4f
setup.go 1.49 KB