Re: Q: PTRACE_ATTACH && -EINTR

From: Oleg Nesterov
Date: Mon Jun 08 2009 - 14:40:59 EST


On 06/08, Roland McGrath wrote:
>
> > Or even -ERESTARTNOINTR ? Or just mutex_lock() ?
>
> -ERESTARTNOINTR is right.
>
> There is nothing wrong with making it interruptible, and that might help
> something or other overall, or even be important to avoid a deadlock or
> something in some strange situation.

Agreed.

> But since the call could never return
> -EINTR before, we can't make it start now.

Yes. -EINTR just wrong.

> > Or ignore this problem since nobody complained?
>
> There has barely been time for anyone to do something strange enough to hit
> it, and they would probably not have realized what was going on even if it
> did hit. We know we broke the ABI contract, we have to fix it.
>
> Note that every use of mutex_lock_interruptible and also down_interruptible
> can return -EINTR. This means these really should never be used in the way
> where their return value is returned directly from some system call. Every
> user-visible call that gets interrupted needs to return some -ERESTART*
> code and never -EINTR directly.

Sure. And we have other users of mutex_lock_interruptible() which deserve
a fix.

As for ->cred_exec_mutex, I think do_execve() needs a fix as well.

It was renamed in -next. Should I send these fixes now for 2.6.20, or we can
wait for 2.6.31 ?

Oleg.

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