tests: fifo_dlq_probe — опрос DLQ до 10с вместо мгновенной проверки (гонка с тиком); финальная регрессия зелёная
This commit is contained in:
@@ -885,3 +885,20 @@ SIGKILL/рестарте пода запись не успевает → оче
|
||||
|
||||
**RSS-мониторинг P3.7**: продолжает писаться в `rss_monitor.log` (старт
|
||||
08:16 +0300, VmRSS=16588 kB, Threads=13).
|
||||
|
||||
## 2026-08-15 — фикс fifo_dlq_probe применён, финальная регрессия зелёная
|
||||
|
||||
**Правка** (`tests/fifo_dlq_probe.py`, по команде «делай»): после цикла попыток
|
||||
DLQ опрашивается до 10с (drain каждые 1с) вместо мгновенной проверки —
|
||||
устранена гонка с тиком PeriodicTasks (период 1с).
|
||||
|
||||
**Проверка**: 5/5 PASS подряд, включая «тяжёлые» фазы (attempt 2 empty /
|
||||
attempt 3 received), которые раньше флапали.
|
||||
|
||||
**Финальная полная регрессия на ВМ** (`full_regression2.log`, 26с):
|
||||
- api_test.sh: **PASS=22 FAIL=0**
|
||||
- sdk_test.py: **PASS=15 FAIL=0**
|
||||
- fifo_dlq_probe.py: fifo_order PASS, fifo_dedup PASS, dlq PASS, exit=0
|
||||
|
||||
ВСЕ тесты зелёные. План Соннета выполнен: P0.1, P0.2, P1.4, P2.5, P2.6,
|
||||
P3.8 — PASS; P3.7 (RSS 2ч) — мониторинг в процессе.
|
||||
|
||||
@@ -89,7 +89,15 @@ def check_dlq():
|
||||
b = sqs.receive_message(QueueUrl=main_url, MaxNumberOfMessages=1).get("Messages", [])
|
||||
print("attempt %d: %s" % (attempt + 1, "received" if b else "empty"), flush=True)
|
||||
time.sleep(1.5)
|
||||
dlq_msgs = drain(dlq_url)
|
||||
# Перенос в DLQ выполняет фоновый тик PeriodicTasks (период 1с) при
|
||||
# истечении VisibilityTimeout. Мгновенная проверка гоняет с фазой тика —
|
||||
# опрашиваем DLQ до 10с.
|
||||
dlq_msgs = []
|
||||
for _ in range(10):
|
||||
dlq_msgs = drain(dlq_url)
|
||||
if dlq_msgs:
|
||||
break
|
||||
time.sleep(1)
|
||||
ok = len(dlq_msgs) == 1 and dlq_msgs[0]["Body"] == "to-dlq"
|
||||
results["dlq"] = ok
|
||||
print("dlq: count=%d body=%s %s" % (len(dlq_msgs), dlq_msgs[0]["Body"] if dlq_msgs else None,
|
||||
|
||||
Reference in New Issue
Block a user