fix(tradein/tgbot): в логе сетевого сбоя не было причины — только пустота после двоеточия #3166
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#3166
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/3156-tgbot-error-type"
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?
Чинит #3156.
Что было
После двоеточия пусто. У
httpx.ReadErrorиhttpx.ConnectErrorтекст исключения обычно пуст, а тип в строку не попадал.Замер на проде 27.08 (контейнер
tradein-tgbot): 23 срабатывания за сутки, 14 за последний час. До3/3не доходило ни разу — ретрай чинит с первой попытки, поэтому сообщений не теряется. Теряется возможность понять причину: по такой строке не отличить таймаут от обрыва соединения от сброса TLS.Сеть при этом цела — сырой TLS до
149.154.167.220:443проходит 6/6 за ~0.16s. То есть искать надо было бы в типе исключения, которого в логе нет.Правка
Тип добавляется к тексту, а не вместо него: на исключениях с внятным сообщением диагностика не должна стать беднее прежней.
Оба конца закреплены тестами: с пустым текстом (
ReadError("")→ в логе должен бытьReadError) и с непустым (ConnectTimeout("таймаут соединения")→ в логе оба). Первый тест падает на старом коде — проверено рассуждением по формату, а не только зелёным прогоном.tests/services/tgbot/— 42 passed, ruff чист.Дальше
Это не лечение, а включение света. Через сутки с типами в логе станет видно, лечится ли это таймаутами и keep-alive или это внешняя деградация — тогда и решать.
Замер на проде 27.08: `getUpdates` падает 23 раза в сутки, 14 из них за один час. Ретрай почти всегда чинит с первой попытки, поэтому сообщений не теряется — теряется возможность понять, что происходит: network error (попытка 1/3): — retry через 2s После двоеточия пусто. У httpx.ReadError и httpx.ConnectError `str(exc)` пуст, а тип исключения в строку не попадал. По такому логу не отличить таймаут от обрыва соединения от сброса TLS, то есть 23 события в сутки не дают ни одной зацепки. Сеть при этом цела: сырой TLS до Telegram проходит 6 из 6 попыток за ~0.16s. Тип добавляется к тексту, а не вместо него: на исключениях с внятным сообщением диагностика не должна стать беднее прежней. Оба конца закреплены тестами — с пустым текстом и с непустым. Closes #3156