Closed
Description
Component(s)
receiver/statsd
What happened?
Description
otelcol-contrib crashes when transport other than udp
is set for statsd receiver - checked with version 0.77
Steps to Reproduce
Set transport
to something different than udp
receivers:
statsd:
transport: "tcp"
exporters:
logging:
service:
pipelines:
metrics:
exporters:
- logging
receivers:
- statsd
Expected Result
I'd expect otelcol to gracefully shutdown
Actual Result
Collector crashes with following output:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x18 pc=0x108b5ef7c]
Collector version
0.77.0
Environment information
Environment
OS: MacOS Ventura version 13.3.1 (a)
OpenTelemetry Collector configuration
receivers:
statsd:
transport: "tcp"
exporters:
logging:
service:
pipelines:
metrics:
exporters:
- logging
receivers:
- statsd
Log output
2023-05-16T12:43:27.105+0200 info service/telemetry.go:113 Setting up own telemetry...
2023-05-16T12:43:27.105+0200 info service/telemetry.go:136 Serving Prometheus metrics {"address": ":8888", "level": "Basic"}
2023-05-16T12:43:27.105+0200 info [email protected]/exporter.go:286 Development component. May change in the future. {"kind": "exporter", "data_type": "metrics", "name": "logging"}
2023-05-16T12:43:27.106+0200 info service/service.go:141 Starting otelcol-contrib... {"Version": "0.77.0", "NumCPU": 10}
2023-05-16T12:43:27.107+0200 info extensions/extensions.go:41 Starting extensions...
2023-05-16T12:43:27.107+0200 info service/service.go:167 Starting shutdown...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x18 pc=0x108b5ef7c]
goroutine 1 [running]:
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver.(*statsdReceiver).Shutdown(0x1400085e620, {0x10ae11f80, 0x1})
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/[email protected]/receiver.go:139 +0x2c
go.opentelemetry.io/collector/service/internal/graph.(*Graph).ShutdownAll(0x0?, {0x10b9da7a8, 0x140000740d0})
go.opentelemetry.io/[email protected]/service/internal/graph/graph.go:319 +0xd4
go.opentelemetry.io/collector/service.(*Service).Shutdown(0x14000692c80, {0x10b9da7a8, 0x140000740d0})
go.opentelemetry.io/[email protected]/service/service.go:173 +0xd0
go.opentelemetry.io/collector/otelcol.(*Collector).setupConfigurationComponents(0x140006bbbc0, {0x10b9da7a8, 0x140000740d0})
go.opentelemetry.io/[email protected]/otelcol/collector.go:185 +0x494
go.opentelemetry.io/collector/otelcol.(*Collector).Run(0x140006bbbc0, {0x10b9da7a8, 0x140000740d0})
go.opentelemetry.io/[email protected]/otelcol/collector.go:209 +0x3c
go.opentelemetry.io/collector/otelcol.NewCommand.func1(0x140001a7800, {0x108eb4596?, 0x2?, 0x2?})
go.opentelemetry.io/[email protected]/otelcol/command.go:38 +0x70
github.com/spf13/cobra.(*Command).execute(0x140001a7800, {0x1400006e1c0, 0x2, 0x2})
github.com/spf13/[email protected]/command.go:940 +0x5c8
github.com/spf13/cobra.(*Command).ExecuteC(0x140001a7800)
github.com/spf13/[email protected]/command.go:1068 +0x35c
github.com/spf13/cobra.(*Command).Execute(0x14000930540?)
github.com/spf13/[email protected]/command.go:992 +0x1c
main.runInteractive({{0x14000930540, 0x140009317a0, 0x14000930960, 0x14000930120, 0x14000931860}, {{0x108edd59b, 0xf}, {0x108f5ee2c, 0x1f}, {0x108eae1e6, ...}}, ...})
github.com/open-telemetry/opentelemetry-collector-releases/contrib/main.go:31 +0x40
main.run(...)
github.com/open-telemetry/opentelemetry-collector-releases/contrib/main_others.go:11
main.main()
github.com/open-telemetry/opentelemetry-collector-releases/contrib/main.go:24 +0x134
Additional context
The example config file does not work as it sets transport to custom_transport
:
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/v0.77.0/receiver/statsdreceiver/testdata/config.yaml