Skip to content

[receiver/statsd] SIGSEGV when transport other than udp is set #22004

Closed
@perk-sumo

Description

@perk-sumo

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

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingreceiver/statsdstatsd related issues

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions