D state processes in 2.3.12+

David Ford (david@kalifornia.com)
Sun, 15 Aug 1999 15:23:08 -0700


ok, more information. having built several different kernels for
testing, anything between 2.3.12 and 2.3.14pre1, i can safely say that
something is flat out broke.

when reading /proc, something triggers a bug. sometimes this trigger is
nearly instant, sometimes it's hours down the road, i have had it happen
immediately upon boot, and i've had it happen four hours down the road
while doing constant "ps aux", "w", "ls -laR /proc".

as random as the trigger is, so also is the PC. the instruction pointer
lands up at some random location in memory, sometimes inbetween
instruction bytes. it stops there. as soon as this trigger is hit,
anything reading /proc will also D state at that same address. i have
not been able to reproduce this on another machine with the same
kernel. further testing will reveal if this PC is dependant on the
kernel binary, i.e. got compiled this way, or is set by something in the
environment.

in a parallel and probably related bug, cd /proc and cat *. on my
machine, this outputs lots of stuff, then explodes in a glorious display
of oopses that never end, this happens on the kcore file iirc.

on a side note, i've found another denial of service attack which i
believe is mostly glibc but might have something to do with ttys.

accomplish this in tty1: while [ 1 ] ; do ps aux ; done
now after a few seconds of running that, try to log in on any other
tty. invalid password. wonderful. now, hit SAK on the login tty and
immediately type your user/pass. it should work. strangely, this
experiment of hitting SAK is not 100% perfect, sometimes after
login/out, you can log back in fine, on the other hand with SAK,
sometimes it never works and you must kill the while loop and let things
settle.

this is a pentium 166 with an intel chipset. config files and /proc
outputs are available at http://stuph.org/D-state/

-d

--
 This is Linux Country. On a quiet night, you can hear Windows NT reboot!
  Do you remember how to -think- ? Do you remember how to experiment? Linux
__ is an operating system that brings back the fun and adventure in computing.
\/  for linux-kernel: please read linux/Documentation/* before posting problems

- 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/