It appears the example I gave happens on a working
kernel as well.  This one doesn't:

        [EMAIL PROTECTED]:~$ ssh 10.7.0.3
        Linux titan.brisbane.lube 2.4.27-6-lube-686-smp #1 SMP Thu Jan 13 
16:01:29 EST 2005 i686 GNU/Linux
        
        [EMAIL PROTECTED]:~$ ps -fu $LOGNAME
        UID        PID  PPID  C STIME TTY          TIME CMD
        rstuart  15870 15868  0 23:33 ?        00:00:00 sshd: [EMAIL 
PROTECTED]/0
        rstuart  15872 15870  2 23:33 pts/0    00:00:00 -bash
        rstuart  15895 15872  0 23:33 pts/0    00:00:00 ps -fu rstuart
        [EMAIL PROTECTED]:~$ (sleep 2; kill -9 15870) & sleep 12345
        [1] 15900
        Connection to 10.7.0.3 closed by remote host.
        Connection to 10.7.0.3 closed.
        [EMAIL PROTECTED]:~$ ssh 10.7.0.3
        Linux titan.brisbane.lube 2.4.27-6-lube-686-smp #1 SMP Thu Jan 13 
16:01:29 EST 2005 i686 GNU/Linux
        
        [EMAIL PROTECTED]:~$ ps -fu $LOGNAME
        UID        PID  PPID  C STIME TTY          TIME CMD
        rstuart  15872     1  0 23:33 ?        00:00:00 -bash
        rstuart  15901 15872  0 23:33 ?        00:00:00 sleep 12345
        rstuart  15905 15903  0 23:33 ?        00:00:00 sshd: [EMAIL 
PROTECTED]/2
        rstuart  15907 15905  2 23:33 pts/2    00:00:00 -bash
        rstuart  15932 15907  0 23:33 pts/2    00:00:00 ps -fu rstuart
        [EMAIL PROTECTED]:~$

Notice the sleep is still running.  On a working kernel is isn't
because it has been sent a SIGHUP.

By the way, it appears the code concerned was copied from 2.6.8,
or a 2.6 kernel a least.  In 2.6.8, the code looks like this:

        /* Defer ldisc switch */
        /* tty_deferred_ldisc_switch(N_TTY);
        
          This should get done automatically when the port closes and
          tty_release is called */
        
        read_lock(&tasklist_lock);

When copied to 2.4.27, the code ended up like this:

        /* Defer ldisc switch */
        /* tty_deferred_ldisc_switch(N_TTY);

        read_lock(&tasklist_lock);

When the trailing */ is restored, the kernel works again.





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to