No description
Find a file
byrsapty e98d51fe76
All checks were successful
CI / hygiene (push) Successful in 8s
CI / web (push) Successful in 44s
CI / server (push) Successful in 1m18s
CI / agent (push) Successful in 38s
Трапи: приймач каже про готовність тоді, коли справді готовий
Перший прогін CI завалив роботу agent на TestInformIsAcknowledged:
«connection refused» від власного слухача. Локально той самий тест
проходив — тобто плаваючий, а плаваючий тест отруює CI сильніше за
відсутність CI: він привчає не дивитись на червоне.

Причина — гонка в тесті. Run піднімається в горутині, а відправник шле
одразу, не чекаючи. Між стартом горутини й зайняттям сокета є вікно, і
датаграма, що в нього потрапила, отримує від ядра «port unreachable».
На вільній машині вікно програє гонку майже завжди, під навантаженням
раннера — виграє.

Заодно знайшлось гірше, і вже не в тесті: рядок «приймач трапів слухає»
друкувався ПЕРЕД tl.Listen(). Тобто журнал стверджував успіх до спроби,
і навіть тоді, коли порт зайняти не вдалося, — а для 162 це саме той
випадок, коли приймач, який мовчить, виглядає точнісінько як спокійна
мережа. Тепер повідомлення йде після фактичного зайняття, і поруч
з'явився Listening(): канал, який закривається тоді ж.

Перевірено 20 прогонів поспіль — зелено. І окремо варте уваги: цю ваду
не спіймала б жодна з наших перевірок, окрім справжнього CI під
навантаженням. Він виправдав себе на першому ж запуску.
2026-08-27 18:11:23 +03:00
.forgejo/workflows Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
agent Трапи: приймач каже про готовність тоді, коли справді готовий 2026-08-27 18:11:23 +03:00
db Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
deploy CI-раннер: дві поломки, які видно лише на живому запуску 2026-08-27 17:52:19 +03:00
gen/go Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
proto Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
scripts Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
server Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
test/contract Етап 2: сервер сам заводить snmp.if-чеки з виявлених інтерфейсів 2026-08-14 15:10:02 +03:00
web Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
.gitattributes Нормалізувати кінці рядків: у репозиторії LF 2026-08-14 03:28:56 +03:00
.gitignore Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
buf.gen.yaml Етап 1-2: схема БД та protobuf-контракт агент-сервер 2026-08-14 03:28:40 +03:00
buf.yaml Етап 1-2: схема БД та protobuf-контракт агент-сервер 2026-08-14 03:28:40 +03:00
docker-compose.yml Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
HISTORY.md Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
netpulse Установник: підказка про зайнятий 9443 більше не шле шукати nginx 2026-08-27 17:43:05 +03:00
netpulse.conf.example Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00
ROADMAP.md Дві сесії роботи: 0058–0068, розгортання однією командою, тести 2026-08-27 17:32:49 +03:00