[Th] OpenOffice przestało mi się uruchamiać (z wynikami śledztwa , bez rozwiązania )

Łukasz Maśko masko w ipipan.waw.pl
Pon, 28 Kwi 2008, 12:05:29 CEST


Udało mi się zrobić strace OOo uruchamianego przez kliknięcie na ikonkę 
obsługiwanego przez nie pliku (w tym przypadku to prezentacja Impress). 
Zrobiłem to za pomocą skryptu-wrappera, który wygląda tak:

#!/bin/bash
strace -f /usr/lib/openoffice.org/program/soffice -impress "$@" >~/log 2>&1

Na prośbę podeślę cały trace, nie chcę zaśmiecać listy. To co jest w nim 
istotne, to pojawiający się w pewnym momencie taki fragment:

[...]
[pid  5468] open("/usr/lib/libXt.so.6", O_RDONLY) = 3
[pid  5468] 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\274\0\0004\0\0\0"..., 
512) = 512
[pid  5468] fstat64(3, {st_mode=S_IFREG|0755, st_size=310196, ...}) = 0
[pid  5468] mmap2(NULL, 314836, PROT_READ|PROT_EXEC, MAP_PRIVATE|
MAP_DENYWRITE, 3, 0) = 0xb3ad5000
[pid  5468] mmap2(0xb3b1e000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|
MAP_FIXED|MAP_DENYWRITE, 3, 0x48) = 0xb3b1e000
[pid  5468] close(3)                    = 0
[pid  5468] mprotect(0xb3b22000, 4096, PROT_READ|PROT_WRITE) = 0
[pid  5468] mprotect(0xb3b22000, 4096, PROT_READ|PROT_EXEC) = 0
[pid  5468] mprotect(0xb3b24000, 12242944, PROT_READ|PROT_WRITE) = 0
[pid  5468] mprotect(0xb3b24000, 12242944, PROT_READ|PROT_EXEC) = 0
[pid  5468] mprotect(0xb4869000, 4096, PROT_READ) = 0
[pid  5468] mprotect(0xb4895000, 561152, PROT_READ|PROT_WRITE) = 0
[pid  5468] mprotect(0xb4895000, 561152, PROT_READ|PROT_EXEC) = 0
[pid  5468] mprotect(0xb49fb000, 4096, PROT_READ) = 0
[pid  5468] mprotect(0xb4a38000, 4096, PROT_READ) = 0
[pid  5468] mprotect(0xb4a63000, 4096, PROT_READ) = 0
[pid  5466] <... poll resumed> [{fd=4, events=POLLIN}], 1, 50) = 0
[pid  5466] select(6, [5], [5], NULL, NULL) = 1 (out [5])
[pid  5466] writev(5, 
[{"8\2\4\0\2\0\200\0\4\0\0\0\323\323\323\0C\0\5\0\1\0\200\0\2\0\200\0\f\0\f\1"..., 
72}], 1) = 72
[pid  5466] read(5, 0x8050a1c, 4096)    = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  5466] read(5, 0x8050a1c, 4096)    = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  5466] poll( <unfinished ...>
[pid  5468] mprotect(0xb53e2000, 53248, PROT_READ) = 0
[pid  5468] mprotect(0xb566d000, 159744, PROT_READ) = 0
[pid  5468] --- SIGSEGV (Segmentation fault) @ 0 (0) ---

Proces o PID 5468 to w tym momencie soffice.bin, sporo wcześniej są takie 
wpisy:

[pid  5467] clone(Process 5468 attached
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0xb77cbbd8) = 5468
[...]
[pid  5468] execve("/usr/lib/openoffice.org/program/soffice.bin", 
["/usr/lib/openoffice.org/program/"..., "-impress"..., "/home/users/ed/Desktop/simplemat"..., "-splash-pipe=5"...], 
[/* 41 vars */] <unfinished ...>

Ta sama aplikacja odpalona tak samo ręcznie z linii poleceń działa 
bezproblemowo. Wyczyściłem całą konfigurację OOo o jakiem mi wiadomo, że 
siedzi w katalogu użytkownika. Dodatkowo odpaliłem KDE na nowym, 
czyściutkim koncie - efekt dokładnie ten sam. Nie jest to więc wina 
konfiguracji.

Dla porównania, analogiczny fragment strace dla tej samej aplikacji 
uruchomionej z palca wygląda tak:

[...]
[pid  5920] open("/usr/lib/libXt.so.6", O_RDONLY) = 3
[pid  5920] 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360\274\0\0004\0\0\0"..., 
512) = 512
[pid  5920] fstat64(3, {st_mode=S_IFREG|0755, st_size=310196, ...}) = 0
[pid  5920] mmap2(NULL, 314836, PROT_READ|PROT_EXEC, MAP_PRIVATE|
MAP_DENYWRITE, 3, 0) = 0xb3ad2000
[pid  5920] mmap2(0xb3b1b000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|
MAP_FIXED|MAP_DENYWRITE, 3, 0x48) = 0xb3b1b000
[pid  5920] close(3)                    = 0
[pid  5920] mprotect(0xb3b1f000, 4096, PROT_READ|PROT_WRITE) = 0
[pid  5920] mprotect(0xb3b1f000, 4096, PROT_READ|PROT_EXEC) = 0
[pid  5920] mprotect(0xb3b21000, 12242944, PROT_READ|PROT_WRITE) = 0
[pid  5920] mprotect(0xb3b21000, 12242944, PROT_READ|PROT_EXEC) = 0
[pid  5920] mprotect(0xb4866000, 4096, PROT_READ) = 0
[pid  5920] mprotect(0xb4892000, 561152, PROT_READ|PROT_WRITE) = 0
[pid  5920] mprotect(0xb4892000, 561152, PROT_READ|PROT_EXEC) = 0
[pid  5920] mprotect(0xb49f8000, 4096, PROT_READ) = 0
[pid  5920] mprotect(0xb4a35000, 4096, PROT_READ) = 0
[pid  5920] mprotect(0xb4a60000, 4096, PROT_READ) = 0
[pid  5918] <... poll resumed> [{fd=4, events=POLLIN}], 1, 50) = 0
[pid  5918] select(6, [5], [5], NULL, NULL) = 1 (out [5])
[pid  5918] writev(5, 
[{"8\2\4\0\2\0\200\0\4\0\0\0\323\323\323\0C\0\5\0\1\0\200\0\2\0\200\0\f\0\f\1"..., 
72}], 1) = 72
[pid  5918] read(5, 0x80509ec, 4096)    = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  5918] read(5, 0x80509ec, 4096)    = -1 EAGAIN (Resource temporarily 
unavailable)
[pid  5918] poll( <unfinished ...>
[pid  5920] mprotect(0xb53df000, 53248, PROT_READ) = 0
[pid  5920] mprotect(0xb566a000, 159744, PROT_READ) = 0
[pid  5920] munmap(0xb6da0000, 114531)  = 0
[pid  5920] gettimeofday({1209376610, 751505}, NULL) = 0
[pid  5920] open("/dev/zero", O_RDWR)   = 3
[...]

Wywraca się przy wykonywaniu munmap(). No i teraz pytanie - czy ktoś ma 
pomysł, co mu się nie podoba?

-- 
Łukasz Maśko                                           GG:   2441498    _o)
Lukasz.Masko(at)ipipan.waw.pl                                           /\\
Registered Linux User #61028                                           _\_V
Ubuntu: staroafrykańskie słowo oznaczające "Nie umiem zainstalować Debiana"


Więcej informacji o liście dyskusyjnej pld-users-pl