doc: progress log 2026-04-27 — poolmgr reuse fix + console cleanup
This commit is contained in:
@@ -506,3 +506,50 @@
|
||||
- Deployment обновлен и успешно прокатан.
|
||||
- Проверено в live HTML: отдается
|
||||
- `<link rel="icon" type="image/png" href="https://nubes.ru/themes/custom/nubes_2025/favicon.png">`.
|
||||
---
|
||||
|
||||
## 2026-04-27
|
||||
|
||||
### Сессия: poolmgr reuse fix (Bug #1 + Bug #2) + console cleanup
|
||||
|
||||
#### Bug #1 — Generation в TapService/UnTapService (`client.go`, commit `775845b`)
|
||||
- Симптом: 10/10 HTTP 200, но pod count рос 1→11 (новый pod на каждый invoke).
|
||||
- Root cause: `Generation` не передавался в `TapService`/`UnTapService`. `MarkAvailable` строил ключ `{UID, RV, Generation=0}` вместо `{UID, RV, Generation=1}` → `activeRequests` никогда не декрементировался → всегда cache miss.
|
||||
- Fix: добавить `Generation: fnMeta.Generation` в оба вызова в `pkg/executor/client/client.go`.
|
||||
- Image: `naeel/fission-bundle:v1.22.0-multi-ns-9`.
|
||||
|
||||
#### Bug #2 — `gpm.podLister[ns]` nil для user namespace (`gpm.go`, commit `0cae275`)
|
||||
- Симптом: после Bug #1 fix — reuse всё ещё не работал.
|
||||
- Root cause: `AddNamespace` обновлял только `poolPodC.podLister[ns]`, но не `gpm.podLister[ns]`. `IsValid` вызывал `gpm.podLister[ns].Pods(...).Get(...)` → nil pointer panic → net/http рвал соединение → router retry → `activeRequests=1` (stuck) → cache miss → новый pod.
|
||||
- Fix: добавить одну строку в `AddNamespace` в `pkg/executor/executortype/poolmgr/gpm.go`:
|
||||
```go
|
||||
gpm.podLister[ns] = gpmInformer.Core().V1().Pods().Lister()
|
||||
```
|
||||
- Image: `naeel/fission-bundle:v1.22.0-multi-ns-10`.
|
||||
- Live validation: `PHP_PODS_BEFORE=1 → PHP_PODS_AFTER=2, NEW_PODS_CREATED=1, REUSE_WORKING=YES_REUSE_FIXED`.
|
||||
- Postmortem: `doc/POOLMGR_REUSE_BUG_POSTMORTEM_2026-04-27.md`.
|
||||
|
||||
#### Console: убрана карточка тайм-триггеров (`console/ui/index.html`, commit `96a02b4`)
|
||||
- Убрана карточка "Тайм-триггеры" из dashboard (счётчик `0`).
|
||||
- Убраны JS-строки: `getJSON('/timetriggers')`, `setText('time-count', ...)`, `const [..., time]`.
|
||||
- Образ: `naeel/fission-console:v1.1` (sha256:0713fee1...).
|
||||
- Деплой: `kubectl set image deployment/fission-console console=naeel/fission-console:v1.1 -n fission`.
|
||||
- **Важно**: container name в deployment = `console` (не `fission-console`!).
|
||||
|
||||
#### TODO: тайм-триггеры (не реализовано, отложено)
|
||||
Нужно реализовать:
|
||||
1. Поле "Cron" в форме создания функции (или отдельная форма/таблица)
|
||||
2. `POST /console/api/timetriggers` → handler `handleCreateTimeTrigger`
|
||||
3. `DELETE /console/api/timetriggers/:name` → handler
|
||||
4. `model.CreateTimeTriggerRequest {Name, FunctionName, Cron string}`
|
||||
5. CRD builder: `fission.io/v1` kind `TimeTrigger`, spec: `{cron, functionref: {name, namespace}}`
|
||||
6. Таблица тайм-триггеров в UI с колонками: имя, функция, расписание, удалить
|
||||
|
||||
#### Текущее состояние live кластера
|
||||
- Fission bundle: `naeel/fission-bundle:v1.22.0-multi-ns-10` (executor + router)
|
||||
- Console: `naeel/fission-console:v1.1`
|
||||
- User namespace: `fission-ffd1f598c169b0ae`
|
||||
- Функции: `88` (Python), `88node` (Node.js), `phppp` (PHP), `rub` (Ruby)
|
||||
- Маршруты: `/f598c169b0ae/{name}`
|
||||
- SSH: `naeel@5.172.178.213`, key `~/.ssh/naeel_vm_id_ed25519`
|
||||
- Token: `grep -m1 "^api_token" /home/naeel/terra/terraform/TEST_STAND/POSTGRES/terraform.tfvars | sed -E "s/^api_token = \"(.*)\"$/\1/"`
|
||||
Reference in New Issue
Block a user