openldap - slurpd nie działa jako demon

Jakub Bogusz qboosh w pld.org.pl
Pią, 22 Lut 2002, 19:57:26 CET


Kiedyś (w listopadzie) już to było poruszane, a nadal jest aktualne.

slurpd nie działa jako demon - tzn. startuje, ale nie replikuje bazy
LDAP. Uruchomiony w trybie debug (bez demonizowania, z logami na
stdout/stderr) działa. Uruchomiony w trybie debug bez wypisywania
czegokolwiek (-d 0), sztucznie zdemonizowany za pomocą setsid
i przekierowania deskroptorów 0-2 na /dev/null działa.

Wtedy kiedy replikowanie (pojedyncze) działa, ps pokazuje 4 wątki
slurpd, kiedy nie działa - 3.

Wygląda na to (jeszcze nie sprawdziłem jednoznacznie), że w trybie
demona szkodzi fork/exit. Program to robi brzydko, bo używa wątków
(pthread), i w momencie forkowania ma już potworzonych trochę muteksów.
Ale slapd robi to samo, a działa... więc to może być coś innego.
strace pokazało, że wtedy kiedy slurpd źle działa, przy starcie widać,
że wysyła sygnał SIGRTMIN do procesu sprzed fork/exec (już nie
istniejącego); w przypadku slapd tak nie jest - i to na razie jedyny
ślad... jeszcze nie udało mi się dojść dlaczego tak jest.

Może macie jakieś koncepcje?

Aha, przerabianie slurpd tak, by używał funkcji z libpthread dopiero po
fork/exec to kupa roboty, więc dla samych testów raczej odpada.


-- 
Jakub Bogusz    http://prioris.mini.pw.edu.pl/~qboosh/



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