[sisyphus] FreeNX в LXC
Игорь Андросов
blacester на gmail.com
Вт Июн 21 15:09:08 MSK 2016
20 июня 2016 г., 17:44 пользователь Евгений Терешков <evg-krsk на yandex.ru>
написал:
> Игорь Андросов пишет:
> > Однако после всего этого - заметил в хосте следующее сообщение в журнале,
>
> после попытки подключения FreeNX.
> >
> > kernel: traps: ssh-agent[21556] general protection ip:7f6ba137ab10
> > sp:7ffeef76d400 error:0 in ld-2.23.so[7f6ba1362000+24000]
>
> Поищите это время в выводе journalctl
В общем разобрался с coredump, нужно было еще suid_dumpable разрешить,
после этого в хост прилетела корка.
Дальше было чудесатей:
Stack trace of thread 11373:
#0 0x00007f8d10e10b10 check_one_fd (/lib64/ld-2.23.so)
#1 0x00007f8d10e10b30 __libc_check_standard_fds (/lib64/
ld-2.23.so)
#2 0x00007f8d10e0f5df _dl_sysdep_start (/lib64/ld-2.23.so)
#3 0x00007f8d10dfcdaa _dl_start_final (/lib64/ld-2.23.so)
#4 0x00007f8d10df8e18 _start (/lib64/ld-2.23.so)
Эм я правильно вижу что падает еще до входа в main???
В check_one_fd есть блок кода:
49 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l49>
/* For writable descriptors we use /dev/full. */
50 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l50>
if ((mode & O_ACCMODE) == O_WRONLY)
51 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l51>
{
52 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l52>
name = _PATH_DEV "full";
53 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l53>
dev = makedev (DEV_FULL_MAJOR, DEV_FULL_MINOR);
54 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l54>
}
55 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l55>
else
56 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l56>
{
57 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l57>
name = _PATH_DEVNULL;
58 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l58>
dev = makedev (DEV_NULL_MAJOR, DEV_NULL_MINOR);
59 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l59>
}
а в __libc_check_standard_fds
98 <https://sourceware.org/git/?p=glibc.git;a=blob;f=csu/check_fds.c;h=baa77a95d7c1fe2e6d40a1996cead065511331cb;hb=HEAD#l98>
check_one_fd (STDIN_FILENO, O_WRONLY | O_NOFOLLOW);
То есть тут явно есть обращение к /dev/full, в контейнере он есть, но на
попытку "потрогать" отвечает что операция не позволена, добавил его в
конфиг lxc, после перезапуска контейнера ssh-agent перестал падать.
Вопрос остался как тогда работало раньше и почему под [s|l]trace работает?
--
С уважением Игорь.
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/sisyphus/attachments/20160621/95b09852/attachment.html>
Подробная информация о списке рассылки Sisyphus