diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-12-05 13:55:23 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-12-05 20:08:06 +0100 |
| commit | d9c79f8842c6a8ed1e691a44c0e97f52f1bcb910 (patch) | |
| tree | 16f30877fd2bea5f6948197e37e92387f48643d8 /vm/vmimpl/merger.go | |
| parent | 1aecf4ed31b674cb1bdfe29a58028b855749c1c6 (diff) | |
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.
Diffstat (limited to 'vm/vmimpl/merger.go')
| -rw-r--r-- | vm/vmimpl/merger.go | 12 |
1 files changed, 11 insertions, 1 deletions
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() |
