-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Unchecked net.Listen() causes segfault in instrumental test #11092
Copy link
Copy link
Closed
Labels
Description
| tcpServer, _ := net.Listen("tcp", "127.0.0.1:8000") |
Hello, I'm taking a quick look at telegraf as part of the Ubuntu Main Inclusion process.
I had a problem building our package locally because I have a squid proxy running on localhost:8000.
This test case doesn't check the error return from net.Listen() and thus doesn't give a useful error message:
...
ok github.com/influxdata/telegraf/plugins/outputs/health 0.019s
ok github.com/influxdata/telegraf/plugins/outputs/http 5.055s
ok github.com/influxdata/telegraf/plugins/outputs/influxdb 0.042s
ok github.com/influxdata/telegraf/plugins/outputs/influxdb_v2 0.020s
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x971eb1]
goroutine 20 [running]:
github.com/influxdata/telegraf/plugins/outputs/instrumental.TCPServer.func1()
/<<BUILDDIR>>/telegraf-1.21.4+ds1/plugins/outputs/instrumental/instrumental_test.go:85 +0x91
created by github.com/influxdata/telegraf/plugins/outputs/instrumental.TCPServer
/<<BUILDDIR>>/telegraf-1.21.4+ds1/plugins/outputs/instrumental/instrumental_test.go:83 +0xcc
FAIL github.com/influxdata/telegraf/plugins/outputs/instrumental 0.015s
ok github.com/influxdata/telegraf/plugins/outputs/kafka 0.011s
ok github.com/influxdata/telegraf/plugins/outputs/kinesis 0.044s
ok github.com/influxdata/telegraf/plugins/outputs/librato 0.015s
...
No one expects test code to be perfect :) but it's pretty common for ports to collide, and a heads up that there was a simple error from a specific system call would be much easier to debug than a segmentation violation.
Thanks
Reactions are currently unavailable