Failsafe boot did not help, but connecting via SSH to the system did.
This is what I'm seeing prior to the login attempt on tty2:
- Boot the system until the login prompt is seen in the console (tty1)
- ssh into the system
- Check processes in tty2:
# ps auxw|grep tty2
root 3707 0.0 0.0 4512 796 tty2 Ss+ 18:19 0:00 /sbin/mingetty tty2
root 3840 0.0 0.0 5728 812 pts/1 R+ 18:23 0:00 grep tty2
- Run an strace -p to the mingetty process from tty2
# strace -p 3707
Process 3707 attached - interrupt to quit
read(0,
- Switch to tty2 from the console with Alt+F2
- Type root and newline
- Check the strace
read(0, "r", 1) = 1
read(0, "o", 1) = 1
read(0, "o", 1) = 1
read(0, "t", 1) = 1
read(0, "\n", 1) = 1
execve("/bin/login", ["/bin/login", "--", "root"], [/* 17 vars */]) = 0
brk(0) = 0x608000
<snip>
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigprocmask(SIG_BLOCK, [TSTP], [], 8) = 0
ioctl(0, SNDCTL_TMR_CONTINUE or TCSETSF, {B38400 opost isig icanon -echo ...}) = 0
write(2, "Password: ", 10) = 10
read(0,
- Type the password on tty2 and enter newline
- Check strace:
write(2, "Password: ", 10) = 10
read(0, "linux\n", 511) = 6
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
write(2, "\n", 1) = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
open("/lib64/xcrypt/libxcrypt_2y.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\6\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18664, ...}) = 0
mmap(NULL, 2113608, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f4983ae5000
<snip>
open("/etc/motd", O_RDONLY) = 4
rt_sigaction(SIGINT, {0x4036a0, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {0x1, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
read(4, "", 8192) = 0
rt_sigaction(SIGINT, {0x1, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {0x4036a0, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
close(4) = 0
rt_sigaction(SIGALRM, {SIG_DFL, [ALRM], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {0x4036c0, [ALRM], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [QUIT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {0x1, [QUIT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
rt_sigaction(SIGTSTP, {0x1, [TSTP], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x1, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {0x1, [INT], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
rt_sigaction(SIGHUP, {0x1, [HUP], SA_RESTORER|SA_RESTART, 0x7f498704a910}, {SIG_DFL, [HUP], SA_RESTORER|SA_RESTART, 0x7f498704a910}, 8) = 0
ioctl(0, TIOCNOTTY
^Z
- It hangs there.
- Not only that, but other processes that access IO, such as checking the generated trace or checking the proc table, also hang after this.
- login package is at the same version from before the zypper patch