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