tasks: заведён урожай ревью remove-telegram-intake
- шесть записей по кластерам причин: журнал под внешним значением, нулевой код ответа в журнале, затирание вложения бедным ответом, открытый анониму адрес подтверждения почты, рубеж расшифровки без работы, пределы длительности - находка про код 500 у отказа приёма дописана в json-api-for-spa: там живёт единая точка отображения доменной ошибки - telegram-account-link и bot-api-only-through-bot-client оставлены с оговоркой, что предмета у них нет до возвращения входа
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# 🔬 Пределы длительности, приходящей из метаданных
|
||||
|
||||
- **Тип:** research
|
||||
- **Категория:** Очередь — Заведена урожаем ревью и встала в конец машинально: место в плане стройки назначает человек.
|
||||
- **Зачем:** Длительность приходит от ffprobe числом и не проверяется ничем: приведение к целому переполняется, а испорченная гистограмма чинится только перезапуском.
|
||||
- **Теги:** review-2026-08-15
|
||||
|
||||
Длительность записи сервис берёт у источника метаданных и не проверяет ни на
|
||||
знак, ни на потолок. Дальше сервис приводит её к целому, умножает на тысячу и
|
||||
кладёт колонкой записи, а заодно отправляет в гистограмму длительностей.
|
||||
|
||||
Число вне диапазона целого при приведении даёт наименьшее возможное значение —
|
||||
отрицательное. Оно портит сумму семейства метрик необратимо: ряд не чинится
|
||||
ничем, кроме перезапуска процесса, а страница метрик открыта без проверки
|
||||
отправителя.
|
||||
|
||||
Потолок записи у проекта объявлен — шесть часов, — и из него выведен предел
|
||||
размера файла. Длительность такого предела не имеет вовсе.
|
||||
|
||||
## Вопрос
|
||||
|
||||
Может ли `ffprobe` вернуть длительность вне диапазона целого на входе, который
|
||||
собрал отправитель, — и какой предел ставить на границе адаптера?
|
||||
|
||||
Что для ответа нужно узнать:
|
||||
|
||||
- какое поле и в какой форме `ffprobe` берёт за длительность у контейнеров,
|
||||
которые сервис принимает: доверяет ли объявленному в контейнере числу или
|
||||
считает по потоку;
|
||||
- есть ли контейнер, где число объявлено явно и потому подделывается: Matroska
|
||||
либо Ogg с подделанной меткой позиции — первые кандидаты;
|
||||
- что делает приём, если длительность отрицательна либо больше объявленного
|
||||
потолка: отвергать запись, обрезать значение или принимать, назвав в журнале.
|
||||
|
||||
## Куда ляжет ответ
|
||||
|
||||
Наблюдение о поведении `ffprobe` — в `docs/research/`, своей записью с командой и
|
||||
условиями замера: разведки о `ffmpeg` у проекта пока нет ни одной, а открытые
|
||||
вопросы про долгие записи и видео стоят в
|
||||
[architecture.md](../../docs/architecture.md). Выбранный предел — задачей
|
||||
следующим прогоном.
|
||||
|
||||
## Рамки
|
||||
|
||||
Прогон на реальных ключах Yandex запрещён и здесь не нужен: разведка меряет
|
||||
`ffprobe`, а не распознавание. Найдено прогоном ревью задачи
|
||||
`remove-telegram-intake` 2026-08-15, враждебный проход, секция свойств без
|
||||
построенного пути — путь не достроен именно потому, что нужен специально
|
||||
собранный контейнер.
|
||||
Reference in New Issue
Block a user