| Предыдущий | Следующий |
| ENETUNREACH | EADDRNOTAVAIL |
ETIME
На этой странице рассматривается состояние Тайм-аут ioctl STREAMS в Darwin. Транзакция управления STREAMS не завершилась в пределах тайм-аута протокола.
Имеет значение интерфейс, вернувший код
Обработка системных вызовов Darwin BSD: тайм-аут ioctl STREAMS в Darwin относится к Darwin errno и должен декодироваться по точному заголовку SDK или XNU, использованному целевой системой. Расширения Darwin и устаревшие имена STREAMS, связанные с этим тайм-аутом, могут отличаться наличием или нумерацией в других UNIX-подобных системах. В рамках Обработки системных вызовов Darwin BSD формулировка, связанная с ETIME, указывает на исходный интерфейс, но не доказывает, что код вернула современная подсистема с похожим названием.
Darwin назначает нескольким символам errno вне POSIX собственные значения и номера при диагностике тайм-аута ioctl STREAMS. При исследовании тайм-аута ioctl STREAMS в Darwin не декодируйте число по таблице Linux и не считайте, что тот же символ возвращается тем же API в другой ОС.
Запись об инциденте
| Сведения | На какой вопрос отвечают |
|---|---|
| Ioctl, тайм-аут, стек модулей, ожидающее сообщение, состояние производителя или драйвера и события пробуждения. | Связывают тайм-аут с конкретным действующим объектом API, а не только с переведённым сообщением. |
| Значение Darwin errno и версия заголовка SDK/XNU, по которому оно декодировано при диагностике тайм-аута ioctl STREAMS. | Показывают, возникла ли ошибка в ABI вызывающей стороны, оболочке или поставщике при диагностике тайм-аута ioctl STREAMS. |
| Результат первого системного вызова или ioctl, а также процесс, поток и поколение объекта при диагностике тайм-аута ioctl STREAMS. | Сохраняют первую границу до того, как errno может быть перезаписан при диагностике тайм-аута ioctl STREAMS. |
| Заведомо исправный объект того же класса в той же сборке macOS при диагностике тайм-аута ioctl STREAMS. | Даёт контрольное сравнение на той же платформе. |
Сохраните errno сразу после отказавшего вызова, вернувшего состояние Тайм-аут ioctl STREAMS в Darwin, до выполнения форматирования, трассировки, выделения памяти или очистки. Для Тайм-аут ioctl STREAMS в Darwin также сохраните возвращаемое значение функции, поскольку многие интерфейсы C сообщают об ошибке через него, а errno используют лишь как дополнительную информацию.
Контролируемые сравнения
- Отправьте минимальный контрольный запрос к той же конечной точке, отслеживая завершение. Изменившийся errno после теста означает новую границу, а не другую формулировку исходного тайм-аута.
- Немедленно сохраните errno и сравните связанное возвращаемое значение при диагностике тайм-аута ioctl STREAMS. После контроля повторите исходную операцию, чтобы результат оставался относящимся к тайм-ауту ioctl STREAMS в Darwin.
- Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений при диагностике тайм-аута ioctl STREAMS. Во время проверки не меняйте двоичный файл, ABI заголовков и поставщика.
Особенно показательны ioctl, тайм-аут, стек модулей, ожидающее сообщение, состояние производителя или драйвера и события пробуждения. В качестве контроля отправьте минимальный запрос к той же конечной точке и отслеживайте завершение. Для состояния Тайм-аут ioctl STREAMS в Darwin эти данные позволяют отличить устаревший идентификатор или неподдерживаемый запрос от общего отказа поставщика без масштабных изменений узла.
Близкие интерпретации
| Соблазнительное предположение | Более безопасная интерпретация |
|---|---|
| Английская фраза считается переносимой между платформами | Ошибка относится к обработке системных вызовов Darwin BSD; до применения таблицы errno другой платформы проверьте заголовки целевой системы и API, вернувший код |
| Повтор завершился успешно и стёр исходные данные | Повтор может заменить ошибку другим состоянием; заранее сохраните первый вызов, числовое значение и поколение объекта |
Если оболочка преобразует состояние Тайм-аут ioctl STREAMS в Darwin в исключение или логическое значение, добавьте инструментирование ниже этой оболочки. Для Тайм-аут ioctl STREAMS в Darwin решающее значение имеет системный вызов, ioctl, функция CRT или точка входа совместимости, впервые предоставившая код.
Критерии устранения
Целевое исправление. Исправьте не отвечающий модуль или другую сторону и реализуйте ограниченные повторы с возможностью отмены.
Доказательство отсутствия регрессии. Контрольные операции завершаются или предсказуемо получают тайм-аут, не оставляя зависших сообщений или повторно используемого состояния. Проверьте один поддерживаемый граничный случай и один намеренно отрицательный случай, чтобы обработка состояния Тайм-аут ioctl STREAMS в Darwin оставалась явной.
Технические ссылки
Эти источники владельцев и стандартов определяют пространство имён и контракт подсистемы, необходимые для проверки Обработки системных вызовов Darwin BSD ETIME в установленной версии платформы.
- Apple XNU: errno.h — определяет используемое пространство статусов при диагностике тайм-аута ioctl STREAMS.
- Apple: ошибки системных вызовов intro(2) — описывает границу API или жизненного цикла при диагностике тайм-аута ioctl STREAMS.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола при диагностике тайм-аута ioctl STREAMS.
- The Open Group: errno.h — определяет ограничения переносимости и проверки при диагностике тайм-аута ioctl STREAMS.
Нужно найти другой код? Найти другой код состояния или ошибки.
