[2026-09-22] eagle: family/documents/vault-sync/2026-09-21-bare-repo-push-permission-denied.md personal/tech/lampac-torrserver.md personal/tech/truenas-nfs4-acl-and-arrmultiuser.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 19:40:24 +06:00
1 parent 067ba8cf82
commit 2ee754f1a9
3 files changed
+92 -5

No files matched your search

+15 -2
View File
@@ -20,7 +20,17 @@
| Приёмка в UI | ✅ Alex запустил F1 в плеере |
| Тестовая раздача `probe` | ✅ убрана сама (сброс при рестарте) |
| `min_sid` | ✅ `min_sid: 3` убран → сток `15` |
| Минус год у «Волшебный участок: Фильм» | ⏳ оставлено пусто (см. ниже) |
| Минус год у «Волшебный участок: Фильм» | ✅ ЗАКРЫТО — оставлено пусто (данных нет в TMDB, фильм в производстве) |
| Документация | ✅ саммари → [[family/how-to/lampac-torrents]], план снесён |
### Итог задачи (2026-09-22)
Задача про торренты **закрыта полностью**. Единственный дефект был внесён мной
(переключение `redapi` на локальный JacRed) и откачен. Разбор → саммари-док
`family/how-to/lampac-torrents.md`; детальный план `personal/plans/lampac-pidtor-503-fix.md`
снесён по требованию Alex, 8 ссылок на него перебиты.
**Онлайн НЕ гасим** — Alex запретил ([[personal/plans/lampac-disable-1xbet-ads]] не применён).
---
@@ -335,7 +345,7 @@ docker start lampac
## 🔴 «Волшебный участок: Фильм» — `year: null`. НЕ БАГ, данных нет в источнике
**Дата разбора:** 2026-09-22 · **Статус:** ⏳ оставлено пусто (решение Alex ожидается)
**Дата разбора:** 2026-09-22 · **Статус:** ✅ **ЗАКРЫТО. Оставлено пусто (решение Alex).**
### Сырьё
@@ -393,6 +403,9 @@ TMDB поиск по названию подтверждает: ровно од
**Правило «фильм есть → добавлять» соблюдено:** позиция в каталоге, карточка
откроется, торренты найдутся когда фильм выйдет.
**Решение Alex (2026-09-22):** «Ок, закрывай задачу» — оставлено как есть,
косметику `"скоро"` не делаем. Вопрос закрыт.
### Питфолл: где лежат ключи TMDB/KP
```
@@ -117,7 +117,12 @@ FOR each dir in [repo] + listdir(f"{repo}/objects"):
```
**⚠️ midclt argument-form pitfalls (cost real time):**
- `filesystem.getacl` and `filesystem.listdir` take a **BARE STRING path**, NOT `{"path": …}`. Passing an object gives `[EINVAL] path: Not a string`.
- 🔴🔴 **Каждая ACE требует поле `id`.** Собирать dacl «с нуля» как `{tag, type, perms, flags}` **НЕЛЬЗЯ** —
TrueNAS отклонит: `[EINVAL] filesystem_acl.dacl.0: ACL entry is missing required keys(s): {'id'}`
(проверено 2026-09-22: 245 каталогов, 0 успешных). Работает только **read-modify-write**:
взять ACL через `getacl` (там `id` уже проставлен), править в нём **только `perms`/`flags`**,
передать `cur["acl"]` обратно в `setacl`. Именно так был сделан успешный прогон 2026-09-21 (291 каталог).
- `filesystem.getacl` и `filesystem.listdir` take a **BARE STRING path**, NOT `{"path": …}`. Passing an object gives `[EINVAL] path: Not a string`.
- `filesystem.setacl` takes **ONE JSON object with `path` INSIDE it** (see gotcha #1 above) — the opposite convention from getacl on the same service. Easy to invert.
- `filesystem.setacl` / `setperm` are **async**: they return a job id. Polling immediately returns state `WAITING` → looks like failure. Must poll until `SUCCESS`/`FAILED`. With ~120 dirs over SSH the loop outlives the SSH timeout — **run it detached** (`nohup … &`) and read the log later; the first SSH-timed-out run had in fact already applied the ACLs.
- Passwordless `sudo` is available on **Kraken** (`sudo -n true` → ok) but **NOT** on TrueNAS `truenas_admin`.