# HANDOFF для нового чата — shared-sqs (состояние на 2026-08-16) > Этот файл — резюме длинной сессии 13–16.08.2026. Новый чат: прочитать > этот файл + HISTORY/2026-08-14-session-log.md + doc/thinking/. ## 1. Что за проект `shared-sqs` — SQS-совместимая очередь (AWS API), Go 1.23, multi-tenant, форк GoAWS. Живёт на платформе Nubes (managed Kubernetes, realm iot-naeel). Локально: `/home/naeel/nubes/SQS-service`, зеркало на ВМ: `naeel@5.172.178.213:~/terra/SQS-service` (ssh-ключ `~/.ssh/naeel_vm_id_ed25519`). **⛔ ГРАНИЦЫ ПРОЕКТА (записано в память):** работать ТОЛЬКО с локальной папкой и её зеркалом на ВМ. Никуда больше без прямого указания пути. ## 2. Статус сервиса - Прод-версия **v0.1.35** задеплоена по digest (Docker Hub `naeel/shared-sqs`). - Все тесты зелёные: api_test 22/22, sdk_test 15/15, fifo_dlq_probe PASS. - План Соннета выполнен: P0.1, P0.2, P1.4, P2.5, P2.6, P3.7, P3.8 — все PASS. - Нагрузка 168 591 операция — 0 сервисных ошибок. - Память стабильна 2ч (VmRSS 16588→15648 kB, Threads 13). ## 3. Главная открытая проблема — ПЛАТФОРМА, не код 1. **Таймауты каждые 31–33с** на внешнем пути (интернет→шлюз Nubes): ~5.5% запросов не получают ответ 30с. Доказано серверным tcpdump (8 «дыр» по 29.5с: запросы не доходят до пода), nginx чист (max 68мс, 499=0), cilium 0 дропов, port-forward 24977 раундов 0 сбоев. Таймер — на ВНЕШНЕМ шлюзе, вне кластера. 2. **MSS=1448** анонсируется шлюзом при underlay MTU 1450 → большие тела (>~1400 байт) виснут ~51с (PMTUD сломан). 3. Готов тикет: `doc/thinking/nubes-ticket.md` — ОТПРАВИТЬ в поддержку Nubes. ## 4. Что мы починили в кластере (16.08, по команде пользователя) - kube-vip: `rollout restart ds shturval-vip` — ушли ошибки leaderelection в удалённый namespace `0a42bef3-...` (хвост июльского сервиса пользователя). - provider LB: добавлен `cidr-global: 185.247.187.151/32` в ConfigMap `kubevip` в **kube-system** (provider читает именно оттуда, env KUBEVIP_NAMESPACE=kube-system). «Ensured load balancer» — OK. - После починки таймауты НЕ ушли (тест: 19 сбоев, период 31.3–33.5с) — подтверждение, что таймер на внешнем шлюзе. ## 5. Сравнение с Yandex YMQ (очередь `newsqs`) - Наш p50: 6–8мс (с ВМ) / 89–90мс (с локали). YMQ: 60–62мс / 138–150мс. - YMQ стабилен (1 ошибка на 959), у нас — таймауты платформы (см. п.3). - YMQ-доступ восстановлен: SA `newsqs` (роль ymq.admin), креды в `secrets/yandex_ymq_newsqs.txt` (имена переменных AWS_ACCESS_KEY_ID/ AWS_SECRET_ACCESS_KEY). Очередь: URL в HISTORY. - Повторный бенчмарк — ПОСЛЕ фикса шлюза Nubes. ## 6. Ключевые доступы - Креды shared-SQS (тенант t-fec713a719ad0b33): AK `SSAK-fec713a719ad0b33c91fa54a`, SK `e898ed410a20ff166f51a52ba39a2954fb87e2da200b1648c3975772bfe9e2b4`. - Внешний endpoint: `https://sqs.containerk8s.dev.nubes.ru` (регион us-east-1). - Внутренний (из подов кластера): сервис `containerk8s` в ns `f1ffb134-7d16-45bd-8bef-69f6ec8ab33c`, порт 4100. - Gitea: `gitea.services.ngcloud.ru/Nail/SQS-service` (токен — в secrets/gitea.txt). - kubeconfig на ВМ протухает ~раз в сутки (~26ч) — обновлять через консоль Nubes (пользователь копирует в буфер, на ВМ: `xclip -selection clipboard -o > ~/.kube/config`). - ⚠️ boto3/aws CLI: ВСЕГДА передавать креды явно (env терминала копит чужие AWS_ACCESS_KEY_ID — был ложный 403 с кредами Яндекса). ## 7. Хвосты / TODO 1. Отправить тикет Nubes (файл готов). 2. Удалить дубликат `secrets/yandex_ymq_fork8s.txt` (одинаков с newsqs.txt) — ждёт команды пользователя. 3. После фикса шлюза: повторный 30-мин бенчмарк vs YMQ, обновить BENCHMARK-COMPARISON. 4. Эхо-сервис (Фаза 3 планов) не понадобился — доказательств хватило. ## 8. Тестовая инфраструктура (tests/) - `run_full_regression.sh` — полная регрессия (api_test + sdk_test + fifo_dlq). - `long_compare_local.py` — 30-мин сравнение с YMQ с таймстемпами. - `compare_ymq_vs_shared.py` — короткое сравнение. - `tcp_mtu_probe.py` — бинарный поиск MTU-порога (порт 443! 32391 снаружи закрыт). - Планы 4 агентов: doc/thinking/nubes-network-bug-plan*.md. ## 9. Правила пользователя (обязательные) - Без «делай» — ничего не менять, только отвечать/смотреть. - Каждый шаг и результат — в HISTORY сразу; коммит после правок. - Команды только с таймаутами. Никаких оценок — считать/мерить. - Часовой пояс GMT+03. sed запрещён (только редакторы файлов).