From d9c79f8842c6a8ed1e691a44c0e97f52f1bcb910 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 5 Dec 2017 13:55:23 +0100 Subject: vm/gce: always ignore serial relay errors GCE serial reply seems to be buggy, we see lots of "serialport: VM disconnected" and "packet_write_wait: Connection to 1.2.3.4 port 9600: Broken pipe" errors, which do not have any explanation. Ignore all serial relay errors. --- vm/vmimpl/merger.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'vm/vmimpl/merger.go') diff --git a/vm/vmimpl/merger.go b/vm/vmimpl/merger.go index b189a40f0..2de32e53b 100644 --- a/vm/vmimpl/merger.go +++ b/vm/vmimpl/merger.go @@ -18,6 +18,16 @@ type OutputMerger struct { wg sync.WaitGroup } +type MergerError struct { + Name string + R io.ReadCloser + Err error +} + +func (err MergerError) Error() string { + return fmt.Sprintf("failed to read from %v: %v", err.Name, err.Err) +} + func NewOutputMerger(tee io.Writer) *OutputMerger { return &OutputMerger{ Output: make(chan []byte, 1000), @@ -84,7 +94,7 @@ func (merger *OutputMerger) AddDecoder(name string, r io.ReadCloser, } r.Close() select { - case merger.Err <- fmt.Errorf("failed to read from %v: %v", name, err): + case merger.Err <- MergerError{name, r, err}: default: } merger.wg.Done() -- cgit mrf-deployment