Формат повідомлення про помилку плагіна.
Коли плагін стикається з критичною помилкою, він надсилає повідомлення GST_MESSAGE_ERROR до шини GStreamer. Neat підвищує пріоритет помилки до NeatError і зберігає підтримувані структуровані деталі для класифікації та відображення.
Домени та коди помилок.
Це рекомендовані домени/коди, які використовуються в різних плагінах:
- Розбір/перевірка конфігурації:
GST_RESOURCE_ERROR_SETTINGS - Файл відсутній:
GST_RESOURCE_ERROR_NOT_FOUND - Диспетчер недоступний:
GST_RESOURCE_ERROR_BUSY; скористайтеся.GST_RESOURCE_ERROR_NOT_FOUNDлише з ідентифікатором діагностики, специфічним для диспетчера, або структурованим полем диспетчера. - Помилки розподілу пам’яті:
GST_RESOURCE_ERROR_NO_SPACE_LEFT - Помилки під час узгодження параметрів/налаштування:
GST_STREAM_ERROR_FORMAT - Помилки під час обробки в середовищі виконання:
GST_STREAM_ERROR_FAILED
Версіоновані структуровані дані.
Нові помилки плагіна Neat додають структуру GstStructure під назвою simaai-neat-error. Версія 1 містить цілочисельне поле без знака neat-schema-version=1. Основний модуль зчитує структуровані поля з версії 1 і, у разі невідомої або відсутньої версії, використовує звичайні поля GStreamer: домен, код, повідомлення та рядок налагодження. Це запобігає інтерпретації майбутньої схеми з використанням застарілих припущень.
Загальні поля:
neat-schema-versionneat-diagnostic-idneat-reasonpluginnodestagegraph-idframe-idstream-idinput-capsoutput-capsallocatordispatcher-error
Помилки, пов’язані з обсягом вхідних даних, також надають інформацію про actual-width, actual-height, actual-stride,
maximum-width, maximum-height, maximum-stride, resize-width, resize-height,
required-bytes, allocated-bytes та input-format.
Помилки, пов’язані з контрактом вхідних даних, також надають інформацію про input-name, segment-name, required-bytes, actual-bytes,
expected-shape, expected-layout, expected-dtype, received-shape, received-layout та
received-dtype. Поля розмітки допомагають розрізняти такі форми, як [3, 224, 224] (CHW) та
[224, 224, 3] (HWC).
Старіші плагіни можуть розміщувати розділений пробілами key='value' список у рядку налагодження. Основний модуль продовжує
використовувати ці поля як резервний варіант для забезпечення сумісності.
Приклад
simaai-neat-error, neat-schema-version=(uint)1,
neat-diagnostic-id=(string)neatprocesscvu.input_contract_mismatch,
plugin=(string)neatprocesscvu, node=(string)model_0,
expected-shape=(string)"[3, 224, 224]", expected-layout=(string)CHW,
expected-dtype=(string)Float32, received-shape=(string)"[224, 224, 3]",
received-layout=(string)HWC, received-dtype=(string)UInt8;
Примітки
- За замовчуванням
NeatError::what()містить нормалізований код помилки, який призначений для відображення користувачеві. контекст, коригувальні дії та ідентифікатор для діагностики. Він не містить вихідне повідомлення GStreamer і рядок налагодження. - Встановіть
SIMA_NEAT_VERBOSE_LEVEL=2іSIMA_NEAT_VERBOSE_TOPICS=gstreamerна короткий проміжок часу. діагностичний запуск. Під час цього додаються відредаговані технічні деталі доNeatError::what()таGraphReport.repro_note.NeatError::report()залишається структурованим інтерфейсом для діагностики. NEAT_LOG_LEVEL=debugне є налаштуванням Neat Library.- URI, що містить інформацію про користувача, та поля, які містять інформацію про підтверджені облікові дані, зокрема
auth,playback-token,hdnts.stream-keyтаtkn– ці значення видаляються з рядків, що використовуються в конвеєрі для формування звітів, команд для відтворення, структурованих даних та JSON. Перед тим, як надати доступ до пакета підтримки, перевірте, чи не містить він специфічних для розгортання шляхів і адрес медіафайлів.