[sisyphus] А давно у нас mc разучился...
Sergey Vlasov
vsu на altlinux.ru
Вс Дек 15 20:12:05 MSK 2013
On Sun, Dec 15, 2013 at 06:22:03PM +0400, Sergey Vlasov wrote:
> Нет, это сам konsole ухитряется каким-то боком портить маску сигналов,
> поскольку даже в xterm, запущенном в fvwm, в котором:
>
> $ grep "^Sig" /proc/$$/status
> SigQ: 4/47818
> SigPnd: 0000000000000000
> SigBlk: 0000000000000002
> SigIgn: 0000000000384004
> SigCgt: 0000000008012003
>
> запуск konsole -e sh -c 'grep "^Sig" /proc/$$/status; read foo'
> даёт:
>
> SigQ: 4/47818
> SigPnd: 0000000000000000
> SigBlk: 00007f1212291c00
> SigIgn: 0000000000000004
> SigCgt: 0000000008010002
>
> Драйвер nvidia в данном случае используется:
>
> [ 31.575] (--) PCI:*(0:1:0:0) 10de:1201:1458:3527 rev 161, Mem @ 0xf8000000/33554432, 0xc8000000/134217728, 0xd4000000/67108864, I/O @ 0x00009f00/128, BIOS @ 0x????????/524288
> [ 32.819] (II) NVIDIA dlloader X Driver 331.20 Wed Oct 30 17:16:53 PDT 2013
> [ 36.241] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 560 (GF114) at PCI:1:0:0 (GPU-0)
>
> [ 35.342486] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 331.20 Wed Oct 30 17:43:35 PDT 2013
>
> kernel-image-std-def-3.10.23-alt1
> kernel-modules-nvidia-std-def-331.20-alt1.199191.1
> nvidia_glx_331.20-331.20-alt123
> nvidia_glx_common-331.20-alt127
Это безобразие ещё и не воспроизводится под strace.
Тест, очищенный от любого вида shell (где могут производиться лишние
действия с сигналами, например, для реализации job control):
konsole --nofork -e grep -h "^Sig" /proc/self/status /dev/stdin
С драйвером nvidia три попытки запуска подряд дали результаты:
SigQ: 1/47818
SigPnd: 0000000000000000
SigBlk: 00007f2e5492bc00
SigIgn: 0000000000000000
SigCgt: 0000000000000000
SigQ: 1/47818
SigPnd: 0000000000000000
SigBlk: 00007f4808032c00
SigIgn: 0000000000000000
SigCgt: 0000000000000000
SigQ: 1/47818
SigPnd: 0000000000000000
SigBlk: 00007f2865897c00
SigIgn: 0000000000000000
SigCgt: 0000000000000000
(да, они ещё и каждый раз разные; мусор, попадающий в маску
заблокированных сигналов, похож на какой-то указатель).
При добавлении strace (даже без -fF) получается всё чисто (повторил раз 10):
SigQ: 1/47818
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
Добавление LD_PRELOAD=/usr/lib64/libGL.so (чтобы отломать libGL от
nvidia) также убирает чушь из маски заблокированных сигналов:
SigQ: 1/47818
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000180000000
Кстати, libGL.so.1 там на самом деле чем-то грузится динамически - в
выводе ldd /usr/bin/konsole её нет.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20131215/dcee6b2c/attachment.bin>
Подробная информация о списке рассылки Sisyphus