[Gelistirici] Catbox ve OpenOffice inşa sorunu

Ozan Çağlayan ozan at pardus.org.tr
24 Mayıs 2009 Paz 11:25:31 EEST


Selamlar,

1-2 ay önce yeni çokçekirdekli bir sunucu üzerinde OpenOffice2.4'ü
derlemeye çalışmış, başarılı olamamıştık. Derleme bir noktada takılıyor,
ps aux çıktısında 8-10 tane state'i T+ olan process çakılmış öylece
bekliyordu.

Ancak aynı openoffice, Gökçen'in kişisel bilgisayarında derleniyordu.
2009 sürecine geldiğimizde ise 2009 sunucusunda da aynı sebepten dolayı
inşa edemedik.

Dün akşam sunucuda derletmeye başladım, takıldığı noktada biraz bakındım
etrafa.

pisi çıktısında son yazan komut gayet trivial bir şey:

cd ./unxlngi6.pro/misc/build && cat ../../..//libtextcat-2.2.patch |
patch  -p2 && touch so_patched_libtextcat

Burada saatlerce asılı kalıyor. Bu process'in /proc dizininde kendisi
trace edenin pisi olduğu yazıyor (PID:1163)

strace ile pisinin o anda ne yaptığına baktım, durmaksızın aşağıdaki 4
satırı basıyor, kendisi bir döngü içerisinde sürekli aynı şeyi yapıyor:


waitpid(-1, [{WIFSTOPPED(s) && WSTOPSIG(s) == 133}], __WALL) = 6073
ptrace(PTRACE_GETREGS, 6073, 0, 0xbfa40fa8) = 0
ptrace(PTRACE_SYSCALL, 6073, 0, SIG_0)  = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFSTOPPED(s) && WSTOPSIG(s) == 133}], __WALL) = 6073
ptrace(PTRACE_GETREGS, 6073, 0, 0xbfa40fa8) = 0
ptrace(PTRACE_SYSCALL, 6073, 0, SIG_0)  = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
..
..
..


waitpid()'nin döndürdüğü PID'ye sahip kimse yok sistemde o anda, ve pisi
sürekli waitpid(), ptrace(), ptrace() yapıyor, hep de 6073'ü alıyor
waitpid'den yıllarca.

catbox kodunda, while(..) içerisinde waitpid() çağırıp, yanıta göre
ptrace() yapan bir blok var (core.c). Ayrıca sandbox'ı kapatınca
openoffice'in 1 saat kadar bir sürede düzgünce derlenip pisilerin
oluşmasını da göze alırsak ortada bir catbox + çokçekirdekli sunucu
sorunu var gibi duruyor.

Bu arada make -j1 ile derlemek de bir fayda getirmiyor.

İyi pazarlar.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi