prometheus/storage
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
..
remote fix: storage/remote.pool interned refs count and flaky test (#16335) 2025-03-27 21:04:30 +01:00
buffer_test.go Unit test for regression in rate vs float and histogram mixup 2024-10-02 13:56:33 +02:00
buffer.go chore: fix function name in comment 2024-10-29 17:58:44 +08:00
errors_test.go Fix appendable: check whether last val was a histogram (#14613) 2024-08-07 15:02:59 +02:00
errors.go Fix appendable: check whether last val was a histogram (#14613) 2024-08-07 15:02:59 +02:00
fanout_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
fanout.go TSDB: Fix some edge cases when OOO is enabled (#14710) 2024-10-23 17:34:28 +02:00
generic.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
interface_test.go Fix: chunkenc.MockSeriesIterator 2024-08-30 16:44:36 +02:00
interface.go Make out-of-order native histograms flag a no-op and always enable (#16207) 2025-03-18 10:59:02 +00:00
lazy.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
memoized_iterator_test.go storage: add AtT method to MemoizedSeriesIterator 2024-07-15 14:09:02 +10:00
memoized_iterator.go storage: add AtT method to MemoizedSeriesIterator 2024-07-15 14:09:02 +10:00
merge_test.go chore: enable unused-parameter from revive 2025-02-19 19:50:28 +01:00
merge.go chore: enable unused-parameter from revive 2025-02-19 19:50:28 +01:00
noop.go Pass limit param as hint to storage.Querier 2024-06-20 09:47:38 -07:00
secondary.go Pass limit param as hint to storage.Querier 2024-06-20 09:47:38 -07:00
series_test.go Upgrade to golangci-lint v1.62.0 (#15424) 2024-11-20 17:22:20 +01:00
series.go chore: enable unused-parameter from revive 2025-02-19 19:50:28 +01:00