Re: 2.6.25.3: su gets stuck for root
From: Vegard Nossum
Date: Sat Jun 14 2008 - 16:35:03 EST
On Sat, Jun 14, 2008 at 7:43 PM, Joe Peterson <joe@xxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/