Skip to content

receive: remote write handler hangs when using "split-tenant-label-name" #7977

@rvichery

Description

@rvichery

Thanos, Prometheus and Golang version used:

thanos, version 0.36.0 (branch: HEAD, revision: cfff5518d37756715a1cee43c42b21f4afccfbf2)
  build user:       root@317f3d9783e7
  build date:       20240731-15:23:35
  go version:       go1.21.12
  platform:         linux/amd64
  tags:             netgo

Object Storage Provider: None

What happened:
When using a single Thanos receive pod with --receive.split-tenant-label-name=<my tenant label> I noticed that all remote write calls coming from Prometheus server were timing out after N seconds when the number of tenant label values was greater than 1. Single tenant using split-tenant-label-name was actually not timing out.

What you expected to happen:
I expected to see the incoming remote write call being processed and split into several TSDB.

How to reproduce it (as minimally and precisely as possible):
Start a single instance of Thanos receive in RouterIngestor mode and with --receive.split-tenant-label-name=<my tenant label>. Send remote write API calls using a Prometheus server and have timeseries with at least two different tenant label values.

I have identified the issue in the original #7256 for this feature and have implemented a fix and unit test for this case.

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