Znikający proces - jak to zdebugować?

Paweł Zuzelski z w grabina.waw.pl
Śro, 10 Wrz 2008, 11:13:07 CEST


Witam,

mam dosyć dziwny problem z xrdp. Normalnie program działa Jestem w stanie się 
zalogować przez rdesktop. Problem pojawia się na jednej maszynie, na której 
mam skonfigurowane logowanie przez pam_ldap. Nie mogę się zalogować przez 
rdesktop na użytkowników z ldap (na użytkowników z /etc/passwd mogę bez 
problemu).

Początkowo myślałem, że po prostu mam jakiś błąd w /etc/pam.d/sesman. Ale po 
przeprowadzeniu głębszego dochodzenia - po prześledzeniu działania sesman-a 
linia po linii okazało się, że rzeczywiście sesman nie potrafi z jakiegoś 
powodu uruchomić Xvnc. Po sforkowaniu a przed execlp proces potomny _ZNIKA_ 
na wywołaniu sigprocmask(SIG_SETMASK, &mask, 0);

To nie jest segfault, to nie jest exit(). Proces po prostu znika. Nie mam 
pomysłu jak zdebugować co tak naprawdę się z nim dzieje.

Co ciekawe problem nie występuje, gdy uruchomię sesmana ręcznie pod strace -f.

Ma ktoś pomysł co to może być? Jak to zdebugować? Co to może byc - kernel? 
glibc?

Moje środowisko:
PLD th i686,
glibc-2.8-7.i686
xrdp-0.4.1-1.i686
kernel: 2.6.18-5-xen-amd64 (gość XENa)


Instrukcja odtworzenia problemu:

Uruchomić xrdp i spróbować się zalogować na użytkownika uwierzytelnianego z 
LDAP.

Tutaj: http://user.touk.pl/pzz/xrdp-dbg.patch
jest patch, który wplata dodatkowe komunikaty debugujące pomagające znaleźć 
linię w której występuje problem.

Po nałożeniu patcha, linia w pliku sesman/session.c na której proces potomny 
się wywala to jest ta między komunikatami "!!! 6 0C" a "!!! 6 0D". Żeby 
widzieć komunikaty można sesmana uruchomić ręcznie, tzn:

service xrdp start
killall sesman
sesman -n

Pozdrawiam,
Paweł


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