i386/73261: Suspending su sometimes hangs
J. Porter Clark
jpc at drum.msfc.nasa.gov
Thu Oct 28 17:30:34 PDT 2004
>Number: 73261
>Category: i386
>Synopsis: Suspending su sometimes hangs
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Oct 29 00:30:33 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: J. Porter Clark
>Release: 5.3-STABLE
>Organization:
NASA MSFC
>Environment:
FreeBSD hammer.msfc.nasa.gov 5.3-STABLE FreeBSD 5.3-STABLE #0: Thu Oct 28 08:40:49 CDT 2004 jpc at hammer.msfc.nasa.gov:/usr/obj/usr/src/sys/HAMMER i386
>Description:
If I run "su", then enter "suspend", sometimes the terminal becomes nonresponsive. The same thing happens if I su to my own userid. I have not seen it happen by running "csh" instead. This is on a fast SMP machine.
The problem rarely happens when I'm tracing su, but here's what it looks like when it does:
(output of strace)
sigprocmask(SIG_BLOCK, NULL, [INT]) = 0
sigprocmask(SIG_BLOCK, [], [STOP CONT CHLD WINCH]) = 0
sigprocmask(SIG_SETMASK, [], []) = 0
close(0) = -1 EBADF (Bad file descriptor)
dup(19) = 0
fcntl(0, F_SETFD, 0) = 0
close(1) = -1 EBADF (Bad file descriptor)
dup(17) = 1
fcntl(1, F_SETFD, 0) = 0
close(2) = -1 EBADF (Bad file descriptor)
dup(18) = 2
fcntl(2, F_SETFD, 0) = 0
syscall_416(0x12, 0xbfbfa4f0, 0xbfbfa4d0) = 0
kill(0, SIGTSTP
Yes, it stops right there, with the cursor right at the end of the P.
If I kill the su PID, it picks up:
) = 0
--- SIGHUP (Hangup) ---
--- SIGHUP (Hangup) ---
--- SIGTERM (Terminated) ---
sigprocmask(SIG_BLOCK, [], []) = 0
and it starts writing out root's csh .history file.
When hung, ps axlww looks like this:
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
0 65182 57246 0 8 0 1600 1284 wait S p1 0:00.01 /usr/bin/su
0 65183 65182 0 96 0 2288 1800 - T+ p1 0:00.03 _su (csh)
>How-To-Repeat:
Run "su". Then enter "suspend." Sometimes I get a shell prompt back, sometimes I don't get anything. If I don't, control-C, etc., doesn't clear the condition, although I do get character echo. Killing su from another tty works. If you do get a shell prompt back, enter "fg" and repeat "suspend" again. About half the time, I get the hanging condition.
>Fix:
Unknown.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list