LINUX.ORG.RU
ФорумAdmin

File descriptor 5 left open


0

0

собственно сабж. он выводится первой строчкой всеми командами работающими с ЛВМ. других проблем пока вроде не вызывает, но как-то стрёмно) подскажите что это такое и где про это прочитать, прямой вопрос гуглю не помог(((

Ответ на: комментарий от borisych

вместо command подставляется, например, lvdisplay?

Lonli-Lokli ★★
() автор топика
Ответ на: комментарий от Lonli-Lokli

что-то в таком духе:

open("/proc/devices", O_RDONLY|O_LARGEFILE) = 5
fstat64(5, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ff7000
read(5, "Character devices:\n 1 mem\n 4 /"..., 4096) = 448
close(5) = 0

там полно чего открывается, скорее всего нужно ошибки на open и close смотреть

borisych ★★★★★
()
Ответ на: комментарий от borisych

какие бы ключики передать strace? судя по тексту ошибки подходит -trace=file. Но всёравно очень много выводит(((

Lonli-Lokli ★★
() автор топика

Перед выполнением любой команды связанной с лвм запускается функция которая закрывает все открытые файлы, кроме stdin, stdout и stderr. Вот только почему-то не всегда это получается.

В моем случае незакрываются какие-то пайпы.

Предлагаю Вам такой эксперимент:

1. Сделайте su потом, к примеру, pvs

2. Сделайте su - потом pvs

Спорим, что во втором случае ругани не будет ;)

Пронаблюдать можно так ll /proc/PID_вашего_шелла/fd/ Файловые дескрипторы незакрывающихся файлов будут показывать на вещи где-то в родительских процессах что ли...

Вопрос в зал: как понять что такое запись вида pipe:[16202]?

Bebop ★★
()
Ответ на: комментарий от borisych

0.000651 open("/proc/meminfo", O_RDONLY) = 5
0.000351 fstat(5, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
0.000135 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9682cf3000
0.000105 read(5, "MemTotal: 1798720 kB\nMemFre"..., 1024) = 826
0.000248 close(5) = 0

больше ничего с "= 5" не находится

Lonli-Lokli ★★
() автор топика
Ответ на: комментарий от Bebop

Как бы воспроизвести это на убунте? пароль руту прописывать не хочется. Чем грозит появление данной ошибки, как оно сказывается на работе LVM?

Lonli-Lokli ★★
() автор топика
Ответ на: комментарий от Bebop

root@big:~# ls -l /proc/8274/fd/
итого 0
lrwx------ 1 root root 64 2008-11-22 00:11 0 -> /dev/pts/0
lrwx------ 1 root root 64 2008-11-22 00:11 1 -> /dev/pts/0
lrwx------ 1 root root 64 2008-11-22 00:09 2 -> /dev/pts/0
lrwx------ 1 root root 64 2008-11-22 00:11 255 -> /dev/pts/0
lr-x------ 1 root root 64 2008-11-22 00:11 5 -> /dev/urandom

получается оно не может закрыть urnadom? с этим имеет смысл бороться?

Lonli-Lokli ★★
() автор топика
Ответ на: комментарий от Lonli-Lokli

>отчего так?

Мне не хватит знаний, чтобы уверено ответить на этот вопрос.

Пусть анонимусы выскажутся.

Bebop ★★
()
Ответ на: комментарий от Lonli-Lokli

>с этим имеет смысл бороться?

Думаю нет. Он закрывает файлы из соображений безопасности (чтоб ничего на дисках не поломалось). В случае /dev/urandom это смысла не имеет.

ЗЫ Теперь Вам известно как сделать так, чтобы все закрывалось ;)

Bebop ★★
()
Ответ на: комментарий от Lonli-Lokli

>как бы на него grep натравить? strace pvdisplay | grep не работает(((

Ну так потому что strace в stderr пишет, а в stdout искать пытаетесь.

Попробуйте strace pvdisplay 2>&1 | grep

php-coder ★★★★★
()
Ответ на: комментарий от Bebop

> как понять что такое запись вида pipe:[16202]?
16202 - это не пид случайно?

anonymous
()
Ответ на: комментарий от Chumka

>16202 - это номер inode в ФС pipefs

А ссылочкой не поделитесь где бы про это можно поподробнее прочесть? Я сам конечно же тоже погуглю... но все же.

Bebop ★★
()
Ответ на: комментарий от Bebop

Наврядли про это можно почитать, т.к. от этого inode пользы мало. Пробегись по fs/pipe.c, там все просто.

Chumka ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.