docs: Sonnet full review response — 3 critical + 4 important bugs
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
# Sonnet 4.6 — Полный код-ревью v1.1.20
|
||||||
|
|
||||||
|
Дата: 2026-07-29
|
||||||
|
|
||||||
|
## 🔴 КРИТИЧЕСКИЙ БАГ #1 — `_finish_op`: неправильный порядок аргументов для CREATE
|
||||||
|
|
||||||
|
Файл: /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py
|
||||||
|
|
||||||
|
Сигнатура: `def _finish_op(client, op_uid, instance_uid, svc_id, display_name, op_name, svc_op_id, is_create, client_id, stand, is_delete=False, params=None, user_email="", app_version=""):`
|
||||||
|
|
||||||
|
Вызов CREATE передаёт 13 аргументов. `params` попадает на позицию `is_delete` → dict truthy → после успешного CREATE вызывается `tracker_remove` — инстанс НЕМЕДЛЕННО удаляется из трекера.
|
||||||
|
|
||||||
|
## 🔴 ВАЖНЫЙ БАГ #2 — `api_history()`: утечка соединения
|
||||||
|
|
||||||
|
Нет `try/finally` — при исключении соединение не возвращается в пул. 5 утечек = пул исчерпан.
|
||||||
|
|
||||||
|
## 🔴 ВАЖНЫЙ БАГ #3 — pool.py: `_initialized = True` до `init_db()`
|
||||||
|
|
||||||
|
При сетевой ошибке `init_db()` не выполняется, но флаг уже True — схема не создастся до перезапуска воркера.
|
||||||
|
|
||||||
|
## 🟡 XSS — `displayName` и `svc` не экранируются в app.js
|
||||||
|
|
||||||
|
`_esc()` не применяется при рендере списка инстансов. Вектор через поле displayName.
|
||||||
|
|
||||||
|
## 🟡 Cookie без `secure=True`
|
||||||
|
|
||||||
|
## 🟡 MODIFY — не досылаются required+default параметры (в отличие от CREATE)
|
||||||
|
|
||||||
|
## 🟠 Мёртвый код: runner.py (LEGACY), дубликат redeploy/else, устаревшие docstring'и
|
||||||
|
|
||||||
|
## 🟠 pool.py — race condition при создании пула без мьютекса
|
||||||
Reference in New Issue
Block a user