prometheus/storage/remote
Oleg Zaytsev c5b92f71d4
fix: storage/remote.pool interned refs count and flaky test (#16335)
* Fix storage/remote.pool interned refs count and flaky test

I saw TestIntern_MultiRef_Concurrent failing on a different PR saying 'expected refs to be 1 but it was 2'.

I took a look, and it definitely can be racy, especially with a time.Sleep() of just 1ms.

I'm fixing that by explicitly waiting until it has been released, and by repeating that 1000 times, otherwise it's just a recipe for a future flaky test.

OTOH, I also took a look at the implementation and saw that we were not holding the RLock() when increasing the references count, so when releasing there was a race condition for the cleanup, I fixed that by holding RLock() while increasing the references count.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* s/Equalf/Equal/

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

---------

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2025-03-27 21:04:30 +01:00
..
azuread chore: enable gci linter (#16245) 2025-03-22 15:46:13 +00:00
googleiam feat: add Google cloud roundtripper for remote write (#14346) 2024-07-30 16:25:19 +01:00
otlptranslator/prometheusremotewrite chore: enable gci linter (#16245) 2025-03-22 15:46:13 +00:00
chunked_test.go fix: use "ErrorContains" or "EqualError" instead of "Contains(t, err.Error()" and "Equal(t, err.Error()" (#15094) 2024-10-06 16:35:29 +00:00
chunked.go Add streaming remote read to ReadClient (#11379) 2024-08-28 07:23:54 +01:00
client_test.go Fix flaky TestReadClient/timeout test 2025-03-18 13:35:40 -04:00
client.go Allow NewReadClient to take in more config options 2025-03-26 00:09:15 +08:00
codec_test.go utf8: Remove support for legacy global validation setting 2025-03-13 10:47:24 -04:00
codec.go Add streaming remote read to ReadClient (#11379) 2024-08-28 07:23:54 +01:00
dial_context_test.go [ENHANCEMEN] Remote-Write: optionally use a DNS resolver that picks a random IP (#15329) 2024-11-15 15:41:49 +00:00
dial_context.go [ENHANCEMEN] Remote-Write: optionally use a DNS resolver that picks a random IP (#15329) 2024-11-15 15:41:49 +00:00
ewma.go style: Replace else if cascades with switch 2023-04-19 17:22:31 +02:00
intern_test.go fix: storage/remote.pool interned refs count and flaky test (#16335) 2025-03-27 21:04:30 +01:00
intern.go fix: storage/remote.pool interned refs count and flaky test (#16335) 2025-03-27 21:04:30 +01:00
max_timestamp.go chore(storage/remote): collect maxTimestamp when value is 0 as well. 2024-07-11 16:43:58 +02:00
metadata_watcher_test.go scrape: Fix metadata in WAL not working for histograms and summaries. 2025-01-15 20:12:38 +00:00
metadata_watcher.go Fix issues raised by staticcheck (#15722) 2025-01-09 17:51:26 +01:00
queue_manager_test.go chore: enable gci linter (#16245) 2025-03-22 15:46:13 +00:00
queue_manager.go Add util/compression package to consolidate snappy/zstd use in Prometheus. (#16156) 2025-03-10 10:36:26 +00:00
read_handler_test.go fix(bstream/writeByte): ensure it appends only one byte (#14854) 2024-09-17 16:28:33 +02:00
read_handler.go fix(remote): rename some remote read related metrics for better clarity. 2024-12-06 17:09:00 +01:00
read_test.go prw2: Split PRW2.0 from metadata-wal-records feature (#16030) 2025-02-13 12:16:33 +00:00
read.go Add streaming remote read to ReadClient (#11379) 2024-08-28 07:23:54 +01:00
stats.go [PRW 2.0] Added Sender and RW Handler support for Response Stats. (#14444) 2024-07-19 18:53:40 +01:00
storage_test.go prw2: Split PRW2.0 from metadata-wal-records feature (#16030) 2025-02-13 12:16:33 +00:00
storage.go prw2: Split PRW2.0 from metadata-wal-records feature (#16030) 2025-02-13 12:16:33 +00:00
write_handler_test.go chore: enable gci linter (#16245) 2025-03-22 15:46:13 +00:00
write_handler.go chore: enable gci linter (#16245) 2025-03-22 15:46:13 +00:00
write_test.go prw2: Split PRW2.0 from metadata-wal-records feature (#16030) 2025-02-13 12:16:33 +00:00
write.go prw2: Split PRW2.0 from metadata-wal-records feature (#16030) 2025-02-13 12:16:33 +00:00