[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