Назад | Перейти на главную страницу

Ошибка «sock_sendmsg-error 22» в RHEL

Я использую серверы RHEL 5.10 (которые находятся в кластере с использованием некоторых общих служб). Когда я перезапускаю их с помощью "init 6" или "reboot". серверы зависают при выключении, постоянно показывая следующее сообщение:

sock_sendmsg-error 22

Мне нужно войти в режим ilO cli и выполнить сброс питания, после чего серверы снова перезагрузятся должным образом. После этого я не вижу значительных ошибок в / var / log / messages. Может кто-нибудь объяснит, что означает ошибка. Это какая-то проблема с сокетами уровня ядра. ?

22 будет стандартным значением errno. Они определены в серии (многих) заголовков включения языка C, начинающихся с errno.h. Я считаю, что проще всего их найти с помощью такого инструмента, как cscope. В любом случае на большинстве Linux-машин 22 - это значение, соответствующее EINVAL, который имеет стандартную визуализацию «недопустимый аргумент».

#define EINVAL          22      /* Invalid argument */
"/usr/include/asm-generic/errno-base.h"

Поскольку мы знаем, что это связано с sendmsg system-call, мы можем найти страницу руководства для sendmsg (2), которая просто сообщает нам, что ей был передан недопустимый аргумент, возможно, потому что что-то не обработало ошибку корректно. Это также может возникать из-за другой ошибки, например, когда mount команда монтирует общий сетевой ресурс CIFS, и возникает ошибка, например неверные учетные данные. В таких случаях истинная ошибка может быть найдена в журнале ядра (dmesg).

Я не уверен, какой системный компонент будет сообщать об этой ошибке. Надеюсь, вы тоже увидите это в журналах?