Skip to content

Commit 1b0c127

Browse files
authored
Pluggable Monitors: Improved error logging / fixed resource leak in some rare conditions (#1638)
* Improve error logging for pluggable monitor * Force quit of pluggable monitor if the port open fails
1 parent 14c98bb commit 1b0c127

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

arduino/monitor/monitor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (mon *PluggableMonitor) jsonDecodeLoop(in io.Reader, outChan chan<- *monito
111111
if err := decoder.Decode(&msg); err != nil {
112112
mon.incomingMessagesError = err
113113
close(outChan)
114-
mon.log.Errorf("stopped decode loop")
114+
mon.log.Errorf("stopped decode loop: %s", err)
115115
return
116116
}
117117
mon.log.

commands/monitor/monitor.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/arduino/arduino-cli/i18n"
2929
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
3030
"github.com/arduino/go-properties-orderedmap"
31+
"github.com/sirupsen/logrus"
3132
)
3233

3334
var tr = i18n.Tr
@@ -76,18 +77,23 @@ func Monitor(ctx context.Context, req *rpc.MonitorRequest) (*PortProxy, *pluggab
7677

7778
descriptor, err := m.Describe()
7879
if err != nil {
80+
m.Quit()
7981
return nil, nil, &arduino.FailedMonitorError{Cause: err}
8082
}
8183

8284
monIO, err := m.Open(req.GetPort().GetAddress(), req.GetPort().GetProtocol())
8385
if err != nil {
86+
m.Quit()
8487
return nil, nil, &arduino.FailedMonitorError{Cause: err}
8588
}
8689

8790
for _, setting := range req.GetPortConfiguration().Settings {
88-
m.Configure(setting.SettingId, setting.Value)
91+
if err := m.Configure(setting.SettingId, setting.Value); err != nil {
92+
logrus.Errorf("Could not set configuration %s=%s: %s", setting.SettingId, setting.Value, err)
93+
}
8994
}
9095

96+
logrus.Infof("Port %s successfully opened", req.GetPort().GetAddress())
9197
return &PortProxy{
9298
rw: monIO,
9399
changeSettingsCB: m.Configure,

0 commit comments

Comments
 (0)