Commit 180eedb
committed
fix(queuev2): broaden RTrim guard to catch raise-upper case
The previous guard used Less(prevUpper) which only caught trims that
shrank the upper bound below prevUpper. It missed the case where
RTrimBySize kept some prefetched tasks (raising the bound above
prevUpper) but dropped the newest ones. The re-advance on lines 392-399
then claimed coverage for the dropped tail, causing GetTask to miss
tasks that exist in the DB.
Changed to !Equal(prevUpper): any change means putTasks called
updateExclusiveUpperBound (= a trim occurred), so skip re-advance in
all cases.
Test: TestCachedQueueReader_PrefetchTrimRaisesUpperBoundAbovePrevUpper
simulates inject filling 1 slot during DB fetch, DB returning 3 tasks,
RTrim keeping 3 oldest and dropping the 4th, confirming the guard fires
even though the trimmed bound is above prevUpper.
Signed-off-by: Seva Kaloshin <seva.kaloshin@gmail.com>1 parent 6463d67 commit 180eedb
2 files changed
Lines changed: 63 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | | - | |
380 | | - | |
381 | | - | |
382 | | - | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
383 | 382 | | |
384 | 383 | | |
385 | 384 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1545 | 1545 | | |
1546 | 1546 | | |
1547 | 1547 | | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
| 1576 | + | |
| 1577 | + | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
| 1581 | + | |
| 1582 | + | |
| 1583 | + | |
| 1584 | + | |
| 1585 | + | |
| 1586 | + | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
| 1593 | + | |
| 1594 | + | |
| 1595 | + | |
| 1596 | + | |
| 1597 | + | |
| 1598 | + | |
| 1599 | + | |
| 1600 | + | |
| 1601 | + | |
| 1602 | + | |
1548 | 1603 | | |
1549 | 1604 | | |
1550 | 1605 | | |
| |||
0 commit comments