| Предыдущий | Следующий |
| EBFONT | ENOTRECOVERABLE |
ETOOMANYREFS
ETOOMANYREFS в Darwin
В Darwin значение 59 (ETOOMANYREFS) означает: слишком много ссылок для операции сокета Darwin в стиле splice. Сетевой путь не смог создать ещё одну ссылку, требуемую операцией.
Что зафиксировать
| Сведения | На какой вопрос отвечают |
|---|---|
| Семейство и тип сокета, количество ссылок или прав в очереди, ограничения процесса, другая сторона и трассировка жизненного цикла. | Связывают ошибку с конкретным действующим объектом API, а не только с переведённым сообщением. |
| Darwin errno и версия SDK/XNU. | Показывают, возникла ли ошибка в ABI вызывающей стороны, оболочке или поставщике. |
| Результат первого системного вызова или ioctl, а также процесс, поток и экземпляр объекта. | Сохраняет errno до его перезаписи. |
| Контрольный объект той же сборки macOS. | Даёт контрольное сравнение на той же платформе. |
Контрольная проверка
- Закройте один контролируемый дубликат или ссылку и повторите операцию один раз. После контроля повторите исходную операцию, чтобы результат оставался относящимся к слишком большому числу ссылок.
- Немедленно сохраните errno и сравните связанное возвращаемое значение. При проверке числа ссылок сокета не меняйте двоичный файл, ABI заголовков и поставщика.
- Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений. Зафиксируйте, достигает ли проверка числа ссылок сокета той же границы системного вызова или среды выполнения, что и исходная ошибка.
Исправление
Освободите утёкшие ссылки сокетов и ограничьте параллелизм; не считайте ошибку общим пределом открытых файлов без подтверждающих данных.
Технические ссылки
- Apple XNU: errno. h — определяет используемое пространство статусов.
- Apple: ошибки системных вызовов intro(2) — описывает границу API или жизненного цикла.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола.
- The Open Group: errno. h — определяет ограничения переносимости и проверки.
Нужно найти другой код? Найти другой код состояния или ошибки.