Skip to content

Unchecked net.Listen() causes segfault in instrumental test #11092

@setharnold

Description

@setharnold

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions