Messages in this thread | | | Date | Sat, 14 Jun 2008 22:34:51 +0200 | From | "Vegard Nossum" <> | Subject | Re: 2.6.25.3: su gets stuck for root |
| |
On Sat, Jun 14, 2008 at 7:43 PM, Joe Peterson <joe@skyrush.com> wrote: >> Can you try to run strace on the su to see where things go wrong, i.e. >> >> $ strace -f -e trace=process su foo >> >> ...and we're only interested in what happens up to the point where it >> hangs. That should hopefully tell us which process is doing the wrong >> thing. In either case, as Alan pointed out, this seems unlikely to be >> a kernel problem. > > OK, I attached this as a text file at the end. But (*bummer*), using > strace makes it impossible to reproduce the hang (figures, and I believe > someone earlier in the thread also had this problem).
Yeah, but doesn't it loop indefinitely calling ioctl() and getting a SIGTTOU? Tracing up till this point is okay (and what I had in mind).
> > As for whether the kernel is at fault, not sure (i.e. does this hang > behavior implicate the kernel automatically or can a user-space process > cause itself such an issue?). But I *do* see different behavior > depending on the kernel version. There were a couple of git kernels in > which I could not reproduce it. Still, if it is a race or something, it > might be that the conditions were just slightly perturbed.
Yeah, a user-space process can do this, and it's the right behaviour for the kernel. I did post a program that would "reproduce" what you're seeing. I do now believe that it's something timing-related, as Alan suggested initially. (But timing-related with your scripts, that is. I must say, that "sleep 2" does look a bit suspicious; I have no idea what that is supposed to do :-))
I suppose it would be more useful to see a trace where you include a few more system calls, can you try:
# strace -e trace=process,ioctl,setpgid -f su foo
instead?
Just for the record, I'm probably not the best person to debug this, so I'm just trying to figure it out as we go. On the other hand, I don't see better suggestions from anybody else. Thank you for persisting, though! :-)
(And the fact that the results differ with the kernel versions does make this relevant for LKML still.)
Vegard
-- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036
| |