Commit decea6b
fix(redis-worker): self-heal stale idempotency lookups + default createdAtMicros
Address AI review findings on PR #3752:
- accept(): if an idempotency lookup survives its entry hash being evicted
(maxmemory), the lookup is stale — rebind to the new run instead of
returning a dead existingRunId that blocks the key forever. Mirrors the
self-heal lookupIdempotency already does. (CodeRabbit)
- lookupIdempotency(): clear a stale lookup with a compare-and-delete
(delMollifierKeyIfEquals Lua) so a concurrent accept that rebinds the
key between our GET and DEL isn't clobbered. (CodeRabbit)
- schemas: default createdAtMicros to "0" so an entry written before the
field existed (or surviving across the deploy that added it) still
parses on pop instead of being silently dropped. (Devin)
- rename the requeue-ordering test to "retry priority" — RPUSH-to-tail
pops the requeued entry ahead of newer items; that's deliberate retry
priority, not FIFO relative to the rest of the queue. (CodeRabbit nit)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 905becf commit decea6b
3 files changed
Lines changed: 138 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
33 | 51 | | |
34 | 52 | | |
35 | 53 | | |
| |||
560 | 578 | | |
561 | 579 | | |
562 | 580 | | |
563 | | - | |
| 581 | + | |
564 | 582 | | |
565 | 583 | | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
570 | 590 | | |
571 | 591 | | |
572 | 592 | | |
| |||
1486 | 1506 | | |
1487 | 1507 | | |
1488 | 1508 | | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 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 | + | |
1489 | 1581 | | |
1490 | 1582 | | |
1491 | 1583 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
163 | 164 | | |
164 | 165 | | |
165 | 166 | | |
| |||
391 | 392 | | |
392 | 393 | | |
393 | 394 | | |
394 | | - | |
395 | | - | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
396 | 399 | | |
397 | 400 | | |
398 | 401 | | |
399 | 402 | | |
400 | 403 | | |
401 | 404 | | |
402 | | - | |
| 405 | + | |
403 | 406 | | |
404 | 407 | | |
405 | 408 | | |
| |||
502 | 505 | | |
503 | 506 | | |
504 | 507 | | |
| 508 | + | |
505 | 509 | | |
506 | 510 | | |
507 | 511 | | |
| |||
519 | 523 | | |
520 | 524 | | |
521 | 525 | | |
522 | | - | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
523 | 534 | | |
524 | 535 | | |
525 | 536 | | |
| |||
935 | 946 | | |
936 | 947 | | |
937 | 948 | | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
938 | 963 | | |
939 | 964 | | |
940 | 965 | | |
| |||
974 | 999 | | |
975 | 1000 | | |
976 | 1001 | | |
| 1002 | + | |
977 | 1003 | | |
978 | 1004 | | |
979 | 1005 | | |
| |||
1039 | 1065 | | |
1040 | 1066 | | |
1041 | 1067 | | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
1042 | 1073 | | |
1043 | 1074 | | |
1044 | 1075 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
54 | 57 | | |
55 | 58 | | |
56 | 59 | | |
| |||
0 commit comments