Description of Problem: Cannot login via gdm, neither as root or as user. gdm starts session (any desktop) which exits immediately. Can login on console, via xdm or startx. However then unable to open any terminal in desktop - terminal flashes on the screen and exits. Other applications are working. Sorry for openning this discussion again. I have shadow, MD5 encrypted passwords, no NIS. My password is 9 characters long, mixture of alphabethical and numerals and '_'. I use 2.4.16-0.13 kernel and glibc-2.2.4-20 from rawhide on top of RH7.2 installation glibc My problem is that after I upgraded pam (already with new kernel and glibc), I cannot login through gdm neither to root, nor to user account. My user password is 8 characters, mixture of lower and upper case alphabethical. Session is getting setup and immediately exits. I run gdm with debug unabled - nothing suspicious - gdm sets cookie to .Xauthority, runs /etc/X11/gdm/Init/Default and session immediately exits after that (it does not matter what desktop I choose). It has to do with authentication, since I can run plain startx or xdm all right - I'm getting Gnome desktop. However, I'm unable to open any terminals then - any of them (gnome-terminal,rxvt, xterm) just blink on the screen and disappear. I can however run Netscape and many other applications. Dowgrading pam back to RH7.2 or RH7.1 version did not help. Neither did changing pam_unix to pam_pwdb as was suggested in other bug discussion. I'm pretty certain system worked with RH7.2 + kernel 2.4.16-0.13 + glibc-2.2.4-20 . I'm fairly lost in what could go wrong. I also have problem that su run as normal user does not switch to root. Root password is accepted, but priveleges not granted. su -l root works fine. Version-Release number of selected component (if applicable): pam-0.75-19 from RH7.2 upgrade and pam-0.75-20 from rawhide How Reproducible: always Steps to Reproduce: 1. try to login 2. 3. Actual Results: session attempts to start and exists Expected Results: Additional Information:
Hm, maybe it is not pam related. Here is the (end of) strace of the xterm which opens and immediately disappers ------------ ioctl(1, 0x5401, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, 0x5401, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, 0x5413, {ws_row=24, ws_col=80, ws_xpixel=720, ws_ypixel=384}) = 0 rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_DFL}, 8) = 0 fork() = 6284 --- SIGCHLD (Child exited) --- wait4(6284, 0xbfffe6fc, 0, NULL) = -1 ECHILD (No child processes) rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_IGN}, 8) = 0 fork() = 6285 rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGINT, {0x806df80, [INT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0rt_sigaction(SIGQUIT, {0x806df80, [QUIT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGTERM, {0x806df80, [TERM], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGPIPE, {0x806df80, [PIPE], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGCHLD, {0x806e190, [CHLD], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 fcntl64(0x4, 0x3, 0, 0x4) = 2 fcntl64(0x4, 0x4, 0x802, 0x4) = 0 write(3, "\22\0\7\0\16\0\300\3\301\0\0\0\4\0\0\0 \0\0\0\1\0\0\0\277"..., 116) = 116 select(4, [3], [], [], {0, 0}) = 0 (Timeout) select(5, [3 4], [], NULL, {0, 0}) = 0 (Timeout) select(4, [3], [], [], {0, 0}) = 0 (Timeout) select(4, [3], [], [], {0, 0}) = 0 (Timeout) select(4, [3], [], [], {0, 0}) = 0 (Timeout) ioctl(3, 0x541b, [0]) = 0 write(3, "\2\0\4\0\16\0\300\3\0\10\0\0001\0b\0\34\1\6\0\25\0\300"..., 320) = 320ioctl(3, 0x541b, [0]) = 0 select(4, [3], [], [], {0, 0}) = 0 (Timeout) ioctl(3, 0x541b, [0]) = 0 ioctl(3, 0x541b, [0]) = 0 select(4, [3], [], [], {0, 0}) = 0 (Timeout) select(5, [3 4], [], NULL, NULL) = 1 (in [4]) --- SIGCHLD (Child exited) --- wait4(-1, NULL, 0, NULL) = 6285 rt_sigaction(SIGCHLD, {0x806e190, [CHLD], SA_RESTART|0x4000000}, {0x806e190, [CHLD], SA_RESTART|0x4000000}, 8) = 0 kill(-6285, SIGHUP) = -1 ESRCH (No such process) rt_sigaction(SIGCHLD, {SIG_IGN}, {0x806e190, [CHLD], SA_RESTART|0x4000000}, 8) = 0 fork() = 6305 wait4(6305, NULL, 0, NULL) = 6305 rt_sigaction(SIGCHLD, {0x806e190, [CHLD], SA_RESTART|0x4000000}, {SIG_IGN}, 8) = 0 close(4) = 0 chown32(0x8086698, 0, 0) = -1 ENOENT (No such file or directory) chmod("/dev/pts/2", 0666) = -1 ENOENT (No such file or directory) _exit(0) = ? ---------------------------- as opposite to succesful launch -------------------------- ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 ioctl(1, TIOCGWINSZ, {ws_row=24, ws_col=80, ws_xpixel=720, ws_ypixel=384}) = 0 rt_sigaction(SIGCHLD, {SIG_IGN}, {SIG_DFL}, 8) = 0 fork() = 29925 wait4(29925, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 29925 --- SIGCHLD (Child exited) --- rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_IGN}, 8) = 0 fork() = 29926 rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGINT, {0x806d4a0, [INT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0rt_sigaction(SIGQUIT, {0x806d4a0, [QUIT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGTERM, {0x806d4a0, [TERM], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGPIPE, {0x806d4a0, [PIPE], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 rt_sigaction(SIGCHLD, {0x806d6b0, [CHLD], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0 fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0 write(3, "\22\0\7\0\16\0\300\3\301\0\0\0\4\0\0\0 \0\0\0\1\0\0\0\277"..., 116) = 116 select(4, [3], [], [], {0, 0}) = 1 (in [3], left {0, 0}) select(5, [3 4], [], NULL, {0, 0}) = 1 (in [3], left {0, 0}) select(4, [3], [], [], {0, 0}) = 1 (in [3], left {0, 0}) select(4, [3], [], [], {0, 0}) = 1 (in [3], left {0, 0}) select(4, [3], [], [], {0, 0}) = 1 (in [3], left {0, 0}) ioctl(3, FIONREAD, [64]) = 0 read(3, "\34\0`\0\16\0\300\3\301\0\0\0o\351\367C\0\0\0\0\0\0\0\0"..., 64) = 64 and further on ----------------------------- Why did selcts timed out ??? adn why wait4 are in wrong order ? Actaully xterm does not exit cleanly - it leave X connection open.
Sorry, I solved my problem. One custom script in /etc/profile.d had 'exit' statement, which, with the script having executable permission, was actually closing the program which was sourcing it. Changing 'exit' to 'return' solved all the problems.