doc: sqs-operator v0.1.7-v0.1.12 — UI fixes, errors, thinking log 2026-04-08

This commit is contained in:
Naeel
2026-04-09 06:25:38 +03:00
parent 3adc0d8323
commit 6b7b60db1b
3 changed files with 200 additions and 1 deletions
+44
View File
@@ -1618,3 +1618,47 @@ if errors.IsInvalid(err) {
**Симптом:** После `kubectl delete pod` оператора API возвращает 503 (не 400/404/409)
**Причина:** Operator pod = API server. Пока старый pod завершается и новый не поднялся — ingress/proxy отдаёт 503
**Исправление:** Тест принимает 503/502 как валидный транзиентный ответ с NOTE
---
## 2026-04-08/09 — SQS Operator UI (v0.1.7–v0.1.12)
### ERR-SQS-01: UI зависает на загрузке (shimmer)
**Симптом:** https://sqs.kube5s.ru/sqs-ui/test001/ — страница грузится (HTTP 200), но список очередей не появляется, крутится shimmer.
**Причина:** После стресс-теста с `autoCreateQueues=true` ElasticMQ накопил 4912 очередей `no-such-queue-*`. UI грузил все → зависал.
**Решение:** Удалить H2 базу (`rm /data/elasticmq.mv.db`) + kubectl rollout restart.
**Профилактика:** В стресс-тесте error-injection паттерн создаёт запросы к несуществующим очередям — при `autoCreateQueues=true` они все создаются. Чистить базу после стресс-теста.
---
### ERR-SQS-02: 503 после kubectl rollout restart (self-healing)
**Симптом:** После SH02/SH05 (удаление Service) UI возвращает 503.
**Причина:** `ensureService` создавал сервис только с портом 9324. При пересоздании порт 3000 (UI) не добавлялся.
**Решение (v0.1.11):** `ensureService` проверяет `qs.Spec.EnableUI` и добавляет порт 3000 при необходимости.
---
### ERR-SQS-03: SendMessage зависает после rollout restart
**Симптом:** HTTP-запрос `SendMessage` не возвращается, висит.
**Причина:** При `kubectl rollout restart` JVM убивается принудительно. H2 database lock (`elasticmq.mv.db`) не снимается. При следующем старте ElasticMQ actor застревает на восстановлении.
**Решение (v0.1.10):** Добавить `FILE_LOCK=NO` в JDBC URL в HOCON конфиге. H2 игнорирует stale lock.
---
### ERR-SQS-04: queueservice_controller.go обнулён (0 байт)
**Симптом:** `wc -l queueservice_controller.go` → 0. Go build падает с "no Go files".
**Причина:** Диск был 100% заполнен (54GB docker images). sshfs при записи через VS Code cursor создал пустой файл вместо ошибки.
**Решение:** `git checkout HEAD -- internal/controller/queueservice_controller.go` + повторное применение патчей v0.1.11.
**Профилактика:** `docker system prune -af` регулярно. Проверять `df -h` перед крупными операциями.
---
### ERR-SQS-05: 404 на /queues/xxx при навигации в UI
**Симптом:** Клик на очередь в UI → браузер переходит на `/queues/1234` → nginx 404.
**Причина:** Next.js в образе `elasticmq-ui` собран с `basePath=""`. Внутренние переходы идут по абсолютным путям без prefix `/sqs-ui/tenantID/`. Ingress не знал о маршруте `/queues`.
**Решение (v0.1.12):** `ensureIngressUIQueues` — третий ingress `/queues` PathTypePrefix → UI service:3000. Без rewrite-target.