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

lsof возвращает ошибку «не могу прочитать vnode»

В системе Solaris 10 я получаю ошибки от lsof:

can't read vnode at 0x7d900000000
can't read vnode at 0x7b

Но у меня такая же lsof двоичный файл в другом аналогичном поле Solaris 10, где он не дает такой же ошибки.

В другом ящике lsof успешно отображает информацию об открытых файлах.

Кто-нибудь еще сталкивался с такой же проблемой и смог ее решить?

Фрагмент полного вывода:

$ lsof
lsof: WARNING: compiled for Solaris release 5.9; this is 5.10.
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
(unknown)     1     root  cwd                             can't read vnode at 0x7d900000000
(unknown)     1     root  rtd                             can't read vnode at 0x7b
(unknown)     9     root  cwd                             can't read vnode at 0x7d900000000
....

Выход isainfo -kv и file:

$ isainfo -kv
64-bit sparcv9 kernel modules
$ file `which lsof`
/usr/local/bin/lsof:    ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped

Выход uname -a на сервере, где работает lsof:

$ uname -a
SunOS server009 5.10 Generic_150400-26 sun4u sparc SUNW,SPARC-Enterprise

Выход uname -a на сервере, где lsof не работает:

$ uname -a
SunOS server043 5.10 Generic_150400-12 sun4u sparc SUNW,Sun-Fire-V890

lsof: ВНИМАНИЕ: скомпилировано для Solaris версии 5.9; это 5.10.

Это подозрительно похоже на lsof сообщает вам, что он сломан, и вам нужно восстановить lsof двоичный файл из исходного кода (или, другими словами: обновление) для надежной работы с вашей текущей версией Solaris.

Если это не вариант, этот ответ может помочь вам обойти проблему.