lkml.org 
[lkml]   [1999]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: A simple way to lock up 2.2.0-pre7
On Fri, 15 Jan 1999, Theodore Y. Ts'o wrote:

> From: sliwa@theta1.cft.edu.pl (Cezary Sliwa)
> Date: Fri, 15 Jan 1999 17:31:30 +0100 (MET)
>
> Just press ^C to stop this loop:
>
> while true; do (cat /dev/tty > /dev/null &); done
>
> (I tried this at the console).
>
> Umm.... I get "cat: /dev/tty: Input/output error" repeated many times.
> No lock up.....

Hi Ted,

It locks here too.. as normal user. The machine is dead except SysRq
still works. The box is looping in __wake_up in sched.c in..
814 while (next != head) {
815 struct task_struct *p = next->task;
816 next = next->next;
817 if (p->state & mode)
818 wake_up_process(p);
819 }
.. and never getting to wake_up_process(p). SysRq-p shows..
EIP: 0010:[<c0112553>] EFLAGS: 00000246
EAX: 00000000 EBX: c2bb1f64 ECX: 00000246 EDX: c2bb0000
ESI: c2365968 EDI: 00000001 EBP: c0293e50 DS: 0018 ES: 0018
CR0: 80050033 CR2: 40014878 CR3: 00101000

EIP: 0010:[<c011255c>] EFLAGS: 00000297
EAX: 00000000 EBX: c2bb1f64 ECX: 00000246 EDX: c2bb0000
ESI: c2365968 EDI: 00000001 EBP: c0293e50 DS: 0018 ES: 0018
CR0: 80050033 CR2: 40014878 CR3: 00101000
.. which are lines 814 and 817. This led me to think that the task
list is getting corrupted ala next->next points to next. I added a
test for this (oops if true) and was rewarded with the oops below.

To trigger...
After you do the initial ^C, you have a few dead cats lying around.
FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
100 0 165 1 0 0 1104 388 read_chan S 3 0:00 /sbin/age
100 0 166 1 0 0 1104 388 read_chan S 4 0:00 /sbin/age
100 0 167 1 0 0 1104 388 read_chan S 5 0:00 /sbin/age
100 515 168 1 7 0 2012 1168 down_failed S 6 0:00 -bash
0 515 214 1 0 0 1096 320 read_chan S 6 0:00 cat /dev/
0 515 224 1 0 0 1096 320 down_failed S 6 0:00 cat /dev/
0 515 230 1 0 0 1096 320 down_failed S 6 0:00 cat /dev/
0 515 238 1 0 0 1096 320 down_failed S 6 0:00 cat /dev/
0 515 254 1 1 0 1096 320 down_failed S 6 0:00 cat /dev/
0 515 260 1 3 0 1096 320 down_failed S 6 0:00 cat /dev/
0 515 268 1 5 0 1096 320 down_failed S 6 0:00 cat /dev/
Every time you press return, one exits with the error message. If you
press ^C again on the affected tty before these are all gone.. boom.

The oops...
Oops: 0002
CPU: 0
EIP: 0010:[<c0112564>]
EFLAGS: 00010246
eax: c2ebe96c ebx: c2b95f64 ecx: c80f5884 edx: c2b94000
esi: c2ebe968 edi: 00000001 ebp: c0293e44 esp: c0293e40
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 0, process nr: 0, stackpage=c0293000)
Stack: c2ebe55d c0293ef4 c01be249 c2ebe96c 00000001 c2ebe55c c2ebe15c c2ebe75c
c0293e74 0d112540 00000000 0000f201 c2ebe15d c0293e88 00000046 c02821a8
00000003 00000002 c0293e94 c01c53c9 0000000d c0293e9c c01c57ad c0293ec8
Call Trace: [<c01be249>] (0) [<c01bc877>] (176) [<c01b7f4e>] (36)
[<c0119eed>] (16) [<c0108a20>] (8) [<c0106f17>] (64)
[<c010a1a0>] (16) [<c0108a20>] (8) [<c0106f17>] (64)
[<c0106f66>] (20) [<c0108941>] (16) [<c0106c83>] (60)
[<c0100176>] (24) [<ffffffff>]
[<c010a165>] 0 [<c010a013>] 0 [<c0109f1c>] 0 [<c01c6352>] 0
[<c01c627e>] 0 [<c01c60a9>] 0 [<c01c4f47>] 0 [<c01c07e5>] 0
[<c01c05db>] 0 [<c01c6105>] 0 [<c01c614e>] 0 [<c01c577d>] 0
[<c01c53a1>] 0 [<c01c5216>] 0 [<c0112540>] 0 [<c0109c75>] 0
[<c010a18b>] 0 [<c0119eab>] 0 [<c01b7f12>] 0 [<c01bc7ac>] 0
[<c01bd77a>] 0 [<c01b860d>] 0 [<c01b4824>] 0 [<c01b979d>] 0
[<c01b430f>] 0 [<c01b46b3>] 0 [<c02322d6>] 0 [<c0232223>] 0
[<c0112540>] 0 [<c01100e3>] 0
Code: c6 05 00 00 00 00 00 8b 02 85 c7 74 e2 52 e8 05 f9 ff ff 83
Using `/usr/src/linux/System.map' to map addresses to symbols.

>>EIP: c0112564 <__wake_up+34/58>
Trace: c01be249 <n_tty_receive_buf+ae5/b20>
Trace: c01bc877 <flush_to_ldisc+db/e8>
Trace: c01b7f4e <console_bh+4a/f8>
Trace: c0119eed <do_bottom_half+51/7c>
Trace: c0108a20 <ret_from_intr>
Trace: c0106f17 <cpu_idle+47/74>
Trace: c010a1a0 <do_IRQ+48/54>
Trace: c0108a20 <ret_from_intr>
Trace: c0106f17 <cpu_idle+47/74>
Trace: c0106f66 <sys_idle+22/34>
Trace: c0108941 <system_call+41/50>
Trace: c0106c83 <start_kernel+1a3/1ac>
Trace: c0100176 <L6>
Trace: ffffffff
Trace: c010a165 <do_IRQ+d/54>
Trace: c010a013 <do_8259A_IRQ+13/a8>
Trace: c0109f1c <handle_IRQ_event+10/70>
Trace: c01c6352 <keyboard_interrupt+e/28>
Trace: c01c627e <handle_kbd_event+12/d8>
Trace: c01c60a9 <do_acknowledge+d/5c>
Trace: c01c4f47 <handle_scancode+13/2d4>
Trace: c01c07e5 <add_keyboard_randomness+d/28>
Trace: c01c05db <add_timer_randomness+13/210>
Trace: c01c6105 <pckbd_pretranslate+d/44>
Trace: c01c614e <pckbd_translate+12/108>
Trace: c01c577d <do_spec+d/44>
Trace: c01c53a1 <enter+d/54>
Trace: c01c5216 <put_queue+e/9c>
Trace: c0112540 <__wake_up+10/58>
Trace: c0109c75 <enable_8259A_irq+d/38>
Trace: c010a18b <do_IRQ+33/54>
Trace: c0119eab <do_bottom_half+f/7c>
Trace: c01b7f12 <console_bh+e/f8>
Trace: c01bc7ac <flush_to_ldisc+10/e8>
Trace: c01bd77a <n_tty_receive_buf+16/b20>
Trace: c01b860d <con_flush_chars+d/24>
Trace: c01b4824 <set_cursor+10/8c>
Trace: c01b979d <clear_selection+d/54>
Trace: c01b430f <complement_pos+13/11c>
Trace: c01b46b3 <add_softcursor+f/dc>
Trace: c02322d6 <vgacon_cursor+12/1d4>
Trace: c0232223 <vgacon_set_cursor_size+13/b4>
Trace: c0112540 <__wake_up+10/58>
Trace: c01100e3 <do_page_fault+13/360>
Code: c0112564 <__wake_up+34/58>
Code: c0112564 <__wake_up+34/58> c6 05 00 00 00 movb $0x0,0x0
Code: c011256b <__wake_up+3b/58> 8b 02 movl (%edx),%eax
Code: c011256d <__wake_up+3d/58> 85 c7 testl %eax,%edi
Code: c0112575 <__wake_up+45/58> 74 e2 je ffffffef <_EIP+0xffffffef>
Code: c0112577 <__wake_up+47/58> 52 pushl %edx
Code: c0112578 <__wake_up+48/58> e8 05 f9 ff ff call fffff918 <_EIP+0xfffff918>
Code: c011257d <__wake_up+4d/58> 83 00 90 addl $0xffffff90,(%eax)
Code: c0112586 <__wake_up+56/58> 90 nop
Code: c0112587 <__wake_up+57/58> 90 nop


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:49    [W:0.083 / U:0.396 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site