grafana / grafana/pyroscope

pushing IngestInput-pprof failed unavailable: address [[[d34d:b33f:d34d:b33f:d34d::]]:4040]:80: missing port in address

Open
#4,205 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
11.7k
Forks
802
Avg merge
1d 19h
Merged PRs (30d)
80

Description

#### Describe the bug
We originally ran into a Pyroscope error with ipv6 addresses ending with multiple colons:
> failed parsing config: /etc/pyroscope/config.yaml: yaml: line 3: mapping values are not allowed in this context

In order to work around the issue, we added explicit square brackets around the POD_IP:
```yaml
distributor:
ring:
instance_interface_names: ["eth0"]
instance_addr: "[${POD_IP}]"
instance_enable_ipv6: true
```
Etc.

However, since then we've run into this error where Pyroscope is sometimes adding an extra pair of square brackets and defaulting to port 80:
> ts=2025-05-26T20:45:24.903191419Z caller=ingest_handler.go:56 level=error msg="pyroscope ingest" err="pushing IngestInput-pprof failed unavailable: address [[[d34d:b33f:d34d:b33f:d34d::]]:4040]:80: missing port in address" orgID=main
>
> ts=2025-05-26T20:46:01.582014577Z caller=http.go:285 level=warn traceID=7abe3d285a6e260f orgID=main msg="POST /push.v1.PusherService/Push (503) 685.777µs Response: \"{\\\"code\\\":\\\"unavailable\\\",\\\"message\\\":\\\"address [[[d34d:b33f:d34d:b33f:d34d::]]:4040]:80: missing port in address\\\"}\" ws: false; Accept-Encoding: gzip; Connect-Protocol-Version: 1; Connect-Timeout-Ms: 9999; Content-Length: 5381; Content-Type: application/proto; User-Agent: Alloy/v1.8.2 (linux; helm); X-Agent-Id: 5874fdda-0000-0000-0000-916bbb0a8c11; X-Alloy-Id: 5874fdda-0000-0000-0000-916bbb0a8c11; X-Scope-Orgid: main; "

#### To Reproduce

#### Expected behavior

Pyroscope should not add an extra set of square brackets around an ipv6 address if the address already has square brackets

#### Environment

- Infrastructure: EKS
- Deployment tool: Helm, Argo
- Pyroscope: 1.13.1

#### Additional Context

```yaml
compactor:
sharding_ring:
instance_addr: '[d34d:b33f:d34d:b33f:d34d::9]'
instance_enable_ipv6: true
instance_interface_names:
- eth0
distributor:
ring:
instance_addr: '[d34d:b33f:d34d:b33f:d34d::9]'
instance_enable_ipv6: true
instance_interface_names:
- eth0
frontend:
instance_addr: '[d34d:b33f:d34d:b33f:d34d::9]'
instance_enable_ipv6: true
instance_interface_names:
- eth0
ingester:
lifecycler:
address: '[d34d:b33f:d34d:b33f:d34d::9]'
enable_inet6: true
interface_names:
- eth0
ring:
kvstore:
store: memberlist
limits:
compactor_blocks_retention_period: 4w
ingestion_burst_size_mb: 32
ingestion_rate_mb: 16
max_query_length: 2w
max_query_lookback: 4w
memberlist:
bind_addr:
- d34d:b33f:d34d:b33f:d34d::9
cluster_label: pyroscope-pyroscope
join_members:
- dns+pyroscope-memberlist.pyroscope.svc.cluster.local.:7946
multitenancy_enabled: true
overrides_exporter:
ring:
instance_addr: d34d:b33f:d34d:b33f:d34d::9
instance_enable_ipv6: true
query_scheduler:
ring:
instance_addr: d34d:b33f:d34d:b33f:d34d::9
instance_enable_ipv6: true
runtime_config:
file: /etc/pyroscope/overrides/overrides.yaml
segment_writer:
lifecycler:
ring:
kvstore:
store: memberlist
self_profiling:
disable_push: true
storage:
backend: s3
s3:
bucket_name: foo
endpoint: s3.us-east-1.amazonaws.com
region: us-east-1
store_gateway:
sharding_ring:
instance_addr: '[d34d:b33f:d34d:b33f:d34d::9]'
instance_enable_ipv6: true
instance_interface_names:
- eth0
replication_factor: 3
target: distributor
```

Runtime config:
```yaml
overrides:
main:
ingestion_burst_size_mb: 64
ingestion_rate_mb: 32
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.