| Предыдущий | Следующий |
| EPROCUNAVAIL | ENOLCK |
EBADFD
Что означает EBADFD в Linux
EBADFD: Файловый дескриптор находится в недопустимом состоянии. Дескриптор может быть численно допустим, но находиться в состоянии, в котором выбранная операция запрещена; важно восстановить его lifecycle.
В Linux учитывайте реальный тип filesystem и объект, к которому пришёл syscall: VFS, локальная FS и сетевой mount могут формировать одинаковое errno по разным причинам. Полезные технические маркеры из контекста этой ошибки: EBADFD, EBADF. Записывайте их фактические значения или режимы, а не только символическое имя errno.
Диагностика
- Не выполняйте destructive cleanup до сохранения inode/file identity и исходной ошибки: после удаления воспроизвести состояние значительно труднее.
- Для удалённого filesystem сохраните mount identity и server-side событие вместе с локальным errno.
- Запишите полный путь после формирования, тип объекта, права доступа и файловую систему; строка пути сама по себе часто недостаточна.
- Для Linux сопоставьте событие с process/thread, descriptor и точным syscall; после retry проверьте, не изменился ли объект под тем же числовым дескриптором.
Практическая проверка
Сделайте трассу всех переходов состояния проблемного descriptor: open/create, dup, shutdown, close и повторное использование номера. Важный тест — сравнить тот же вызов на только что созданном объекте и на объекте, прошедшем реальный lifecycle приложения. Если свежий descriptor работает, ищите ошибочный state transition, а не ограничения самой операции.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.