v5.0.64: delete idempotency, duplicate adopt, defer unlock, exist marker
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Prompt for Opus — поиск багов в 3 файлах
|
||||
|
||||
Проверь эти 3 конкретных файла на баги, аналогичные `skip_missing_on_delete` (провайдерский параметр с плохим дефолтом, которого нет в API YAML).
|
||||
|
||||
## Файл 1: Шаблон генератора
|
||||
`/home/naeel/tf_provider/TOOLS/resource-generator/internal/templates/templates.go`
|
||||
|
||||
Смотри все хардкодженные атрибуты (НЕ из `.SchemaParams` / `.OutputParams`):
|
||||
- `resource_name`
|
||||
- `operation_timeout`
|
||||
- `log_level`
|
||||
- `suspend_on_destroy`
|
||||
- `adopt_existing_on_create`
|
||||
- `skip_missing_on_delete`
|
||||
- `git_revision`
|
||||
- `{service}_id`
|
||||
|
||||
Вопросы:
|
||||
- У каждого: правильный ли дефолт?
|
||||
- Не создаёт ли проблем при параллельных/повторных apply?
|
||||
- `skip_missing_on_delete` с дефолтом `false` — уже известный баг. Есть ли другие?
|
||||
|
||||
## Файл 2: CRUD-логика
|
||||
`/home/naeel/tf_provider/provider/internal/resources_core/crud.go`
|
||||
|
||||
Вопросы:
|
||||
- `FindSubresourceInStateOut` — не должна ли проверка молча пропускать удаление?
|
||||
- `IsSubresourceMissingError` — все ли ошибки ловит?
|
||||
- `adoptExistingInstanceOnCreate` — есть ли гонки при параллельном adopt?
|
||||
|
||||
## Файл 3: Сгенерированный subresource
|
||||
`/home/naeel/tf_provider/generated/test/go/90_postgres_database_resource.go`
|
||||
|
||||
Вопросы:
|
||||
- Delete (строки 251-330): правильный ли handling "объект уже удалён"?
|
||||
- Create: что при duplicate?
|
||||
- `skipMissingOnDelete` — везде ли корректно?
|
||||
|
||||
## Что искать
|
||||
1. Ошибки вместо идемпотентности (delete/create должны быть идемпотентны)
|
||||
2. Плохие дефолты (как `skip_missing_on_delete=false`)
|
||||
3. Гонки при параллельных операциях
|
||||
4. Провайдерские параметры не из API — все ли оправданы?
|
||||
|
||||
## Контекст
|
||||
- API не поддерживает параллельные операции на одном инстансе
|
||||
- Subresource delete падает с ошибкой если объект уже удалён
|
||||
- `skip_missing_on_delete` — костыль для обхода, дефолт `false` (баг)
|
||||
- Уже добавлен instance-level mutex в v5.0.63
|
||||
|
||||
## Формат ответа
|
||||
Для каждого бага: `файл:строка` → симптом → причина → исправление.
|
||||
Не читай другие файлы без необходимости.
|
||||
Reference in New Issue
Block a user