Bug 13283

Summary: xine-ui - Shared Memory Segments не освобождает.
Product: Sisyphus Reporter: Markelov Alexander <ml>
Component: xine-uiAssignee: Anton V. Boyarshinov <boyarsh>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: dottedmag
Version: unstable   
Hardware: all   
OS: Linux   

Description Markelov Alexander 2007-10-31 20:36:11 MSK
[root@server ~]# uname -a
Linux server.swzone.spb.ru 2.6.18-std-smp-alt6 #1 SMP Sun Apr 29 00:41:18 MSD
2007 i686 GNU/Linux
[root@server ~]# rpm -q xine-ui libxine
xine-ui-0.99.5-alt3
libxine-1.1.8-alt2

До запуска xine имеем:
[root@server freevo]# ipcs -m | wc -l
11
[deep@server ~]$ xine --verbose=0 -A none -V none 
dvd://var/opt/iso/ALONG_CAME_POLLY.iso
Это xine (графическая оболочка для X11) - свободный видеопроигрыватель 
v0.99.5.
(c) 2000-2007 The xine Team.
libdvdread: Using libdvdcss version 1.2.9 for DVD access

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000148
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000ff7d
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x00021af6
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x002d5b5d
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x002d5b62
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x003691b3
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x003691b8
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x003a4d06
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x003a4d0b
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x003b60c1
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x003b60c6
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x003bc029
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x003bc02e
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_0.VOB at 0x003be6ba
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_07_1.VOB at 0x003be6bf
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_0.VOB at 0x003c01e3
libdvdread: Elapsed time 0
libdvdread: Get key for /VIDEO_TS/VTS_08_1.VOB at 0x003c01e8
libdvdread: Elapsed time 0
libdvdread: Found 8 VTS's
libdvdread: Elapsed time 0
No accelerated IMDCT transform found
В процессе работы:
[root@server freevo]# ipcs -m | wc -l
138
Останавливаем xine.
[root@server freevo]# ipcs -m | wc -l
89
Таким образом около 50 раз при удачном раскладе можно запустить xine, 
при стандартных настройках:
[root@server freevo]# cat /proc/sys/kernel/shmmni
4096

Данное поведения я описал еще 06.06.2007 в рассылке sisyphus@lists.altlinux.org
Comment 1 led 2008-02-20 22:20:49 MSK
не замечаю ничего подобного...
Comment 2 Markelov Alexander 2008-02-28 16:07:05 MSK
Какие еще от меня данные требуются ?
Для себя решил проблему пересобрав пакет с:
%def_disable shm
%def_disable shm_default
Данная проблемы исчезла. Но появилась новая, теперь все что использует libxine
валится в Segmentation fault. xine, oxine, gxine. 
Ну думаю, для этого надо отдельную багу вешать.
Валится приблизительно так:
gdb xine
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1214908736 (LWP 6349)]
0xb7ca3b41 in strlen () from /lib/libc.so.6
(gdb) thread apply all bt

Thread 3 (Thread -1223955568 (LWP 6373)):
#0  0xb7cef487 in select () from /lib/libc.so.6
#1  0xb7f3677e in xine_usec_sleep () from /usr/lib/libxine.so.1
#2  0x00000000 in ?? ()

Thread 2 (Thread -1215566960 (LWP 6371)):
#0  0xb7c2dca1 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0xb7d00d8d in pthread_cond_wait () from /lib/libc.so.6
#2  0x080d9098 in xine_list_post_plugins ()
#3  0x0811eaf0 in ?? ()
#4  0x0811ead8 in ?? ()
#5  0xb78be378 in ?? ()
#6  0x00000000 in ?? ()

Thread 1 (Thread -1214908736 (LWP 6349)):
#0  0xb7ca3b41 in strlen () from /lib/libc.so.6
#1  0xb674bc8e in xine_list_post_plugins ()
   from /usr/lib/xine/plugins/1.1.10/xineplug_inp_dvd.so
#2  0x00000000 in ?? ()

strace -f xine
[..skip..]
[pid  7025] open("/usr/lib/xine/plugins/1.1.10/xineplug_inp_dvd.so", O_RDONLY) = 5
[pid  7025] read(5, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\27"...,
512) = 512
[pid  7025] fstat64(5, {st_mode=S_IFREG|0644, st_size=167004, ...}) = 0
[pid  7025] mmap2(NULL, 169956, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
5, 0) = 0xb6716000
[pid  7025] mmap2(0xb673f000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x28) = 0xb673f000
[pid  7025] close(5)                    = 0
[pid  7025] open("/etc/ld.so.cache", O_RDONLY) = 5
[pid  7025] fstat64(5, {st_mode=S_IFREG|0644, st_size=85486, ...}) = 0
[pid  7025] mmap2(NULL, 85486, PROT_READ, MAP_PRIVATE, 5, 0) = 0xb6701000
[pid  7025] close(5)                    = 0
[pid  7025] open("/usr/lib/libdvdcss.so.2", O_RDONLY) = 5
[pid  7025] read(5,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\21\0\000"..., 512) = 512
[pid  7025] fstat64(5, {st_mode=S_IFREG|0644, st_size=30212, ...}) = 0
[pid  7025] mmap2(NULL, 31240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
5, 0) = 0xb679f000
[pid  7025] mmap2(0xb67a6000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 5, 0x7) = 0xb67a6000
[pid  7025] close(5)                    = 0
[pid  7025] munmap(0xb6701000, 85486)   = 0
[pid  7025] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid  7027] <... futex resumed> )       = -1 EINTR (Interrupted system call)
[pid  7034] <... select resumed> )      = ? ERESTARTNOHAND (To be restarted)
[pid  7027] +++ killed by SIGSEGV +++
Process 7027 detached
[pid  7034] +++ killed by SIGSEGV +++
Process 7034 detached
Process 7025 detached

Что ему в /usr/lib/libdvdcss.so.2 не нравится не пойму...
Убрав данную библиотеку все работает на ура. А с ней не хочет :(

PS: Может это как то связанно с тем что у меня физически нет DVD устройства.
Похожий баг разбирался вот тут:
http://www.nabble.com/-Bug-33097--totem%2C-NEW%3A-totem-segfaulted-while-opening-a-DVD-to12459057.html#a12459327
Comment 3 Markelov Alexander 2008-02-28 16:48:19 MSK
Отвечу сам себе, на только что поставленный вопрос.
xine, в момент отладки я запускал из под спец юзера, по ssh в которого я
превращался с помощью su юзернейм. При этом у меня не передекларировались пути
приходилось руками говорить HOME=/home/юзернэйм DISPLAY=:0 
Оказывается ему еще не хватало TMPDIR="/home/юзернэйм/tmp"

Век живи, век учись.
Comment 4 Mikhail Gusarov 2008-06-13 13:00:39 MSD

    
Comment 5 led 2008-08-18 03:09:38 MSD
я так и не смог воспроизвести указанные "утечки памяти"
Comment 6 Mikhail Gusarov 2008-08-18 03:10:35 MSD
Невозможность вопрозвести - WORKSFORME.