[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