Re: futex strangeness in 2.6.23-mm1/UML

From: Ian Kent
Date: Mon Oct 22 2007 - 22:54:31 EST


On Mon, 2007-10-22 at 21:38 -0400, Rik van Riel wrote:
> On Mon, 22 Oct 2007 21:11:43 -0400
> Rik van Riel <riel@xxxxxxxxxx> wrote:
>
> > I have my systems set up to automount my home directory over
> > NFS when I log in. When trying to log in to the system with
> > 2.6.23-mm1, I get the messages from above in my syslog, and
> > the NFS filesystem is not automounted.
> >
> > I am thinking something in autofs or the pid-namespace* patches
> > does not match up and uses a wrong PID number or process pointer
> > when trying to lock things.
> >
> > Which code is at fault I have no idea...
>
> I still do not know for sure, but I have found some code that
> puzzles me.
>
> At fork() time, task->pid is set to task->pid->numbers[0].nr
>
> On the other hand, fork() returns to the parent process:
>
> task->pid[PIDTYPE_PID]->numbers[task->pid->level].nr
>
> I have not unravelled the code enough yet to be sure whether
> this is always the same number, but having a wrong PID number
> somewhere could certainly explain these autofs4 errors:
>
> Oct 22 14:39:01 kenny automount[2299]: cache_readlock: mapent cache
> rwlock lock failed
> Oct 22 14:39:01 kenny automount[2299]: unexpected pthreads error: 11 at
> 65 in cache.c
>
> After all, autofs4 puts various kinds of PID information of the
> daemon into the autofs4 waitqueue:
>
> fs/autofs4/waitq.c:296:
> wq->uid = current->uid;
> wq->gid = current->gid;
> wq->pid = current->pid;
> wq->tgid = current->tgid;
>
> Could this be related?

Probably not wrt the pthreads lock fail.
The value passed to the daemon are used for information purposes.

The pid is used only to log who is asking for the mount.
The uid and gid are used to find user name and group name and the four
bits of user information are used to set values in the environment for
use as macros within the map.

If the values in the wait request are wrong then we probably wouldn't
even know as few people will be even aware they are available.

Ian


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