fix(tradein/browser): повтор evaluate на той же странице — гонка случается ПОСЛЕ load (#2676) #2721
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2721
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/2676-inpage-context-retry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fix-forward к #2716 (тот же issue #2676)
Прод-проверка #2716 показала половину результата: признак распознаётся (в логе сайдкара появилась новая ветка), но повтор не помогает.
Воспроизведено вживую дважды (безобидный
robots.txt,origin= корень и город) — обе попытки падают одинаково. При этом/fetchтого же URL отдаёт 200 и настоящий robots.txt: площадка не блокирует, прокси жив, дело не в бане.Вывод, который меняет правку: навигация origin-страницы происходит после события
load. Поэтому ни settle, ни ожиданиеloadеё не опережают, а повтор на СВЕЖЕЙ странице честно воспроизводит ту же первую навигацию — он не может выиграть по построению.Что сделано
evaluateна ТОЙ ЖЕ странице. К моменту исключения навигация уже случилась, у страницы новый и уже стабильный контекст. Стоит миллисекунды против полной ре-навигации (~30-45с/дом).BrowserFetcher.fetch_json), который был и до #2716.load— в_wait_for_load_best_effort.Итого попыток на один
/fetch-json: 2 evaluate на одной странице (вместо 1) + прежний клиентский повтор. Ре-навигаций больше не стало.Test plan
test_server_fetch_json.py: обе формы сообщения playwright → повтор на той же странице (browser.opened == 1,evaluate.await_count == 2); таймаут ожиданияloadне отменяет попытку; повтор ровно один; чужая ошибка evaluate не даёт второго прохода; причина остаётся в теле 500test_server*.py— 4 падения ПРЕ-СУЩЕСТВУЮЩИЕ (проверено на origin/main:_ensure_browser(proxy_override=...)и пейсинг); эти тесты вообще не запускаются в CI —ci-tradein.ymlгоняет толькоtradein-mvp/backendPOST /fetch-jsonнаrobots.txtизнутриtradein-scraper→ ожидаем 200 вместо 500Refs #2676