guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MIPS64/N64 support


From: Mark H Weaver
Subject: Re: MIPS64/N64 support
Date: Wed, 09 Oct 2013 02:53:20 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

I wrote:
> Here are the inode numbers as reported by ls -lia:
>
> mhw:/tmp$ ls -lia nix-build-make-boot0-3.82.drv-0/
> total 16
> 7274550 drwxr-xr-x 3 guix-builder1 guix-builder 4096 Oct  8 17:19 .
> 7072375 drwxrwxrwt 9 root          root         4096 Oct  8 17:19 ..
> 7272956 -rw-r--r-- 1 guix-builder1 guix-builder 1141 Oct  8 17:19 
> environment-variables
> 7274551 drwxr-xr-x 8 guix-builder1 guix-builder 4096 Oct  8 17:19 make-3.82
>
> Here's a summary of what the 'strace' output tells me:
>
> * The initial stat(".") syscall reports inode 7274551, which corresponds
>   to "/tmp/nix-build-make-boot0-3.82.drv-0/make-3.82", as expected.
>
> * stat("/") reports inode 1073173, which looks WRONG.

Actually, this turned out to be correct.

> * stat("..") reports inode 7274550, which corresponds to
>   "/tmp/nix-build-make-boot0-3.82.drv-0", as expected.
>
> * reading the contents of ".." reports inode numbers that all look
>   correct, including "make-3.82" with inode 7274551, the same as ".".
>   Thus 'pwd' concludes that its result will end with "/make-3.82".
>
> * stat("../..") reports inode 1073174, which looks WRONG.

This is also correct.

> * reading the contents of "../.." reports inode numbers that all look
>   WRONG:
>
>    "nix-build-make-boot0-3.82.drv-0" with inode 1073325

This is the entry that reports the wrong inode number.  Note that this
is a bind mount that mirrors /tmp/nix-build-make-boot0-3.82.drv-0 .

I guess that <CHROOT>/tmp/nix-build-make-boot0-3.82.drv-0 should have
the same inode as <CHROOT>/tmp/nix-build-make-boot0-3.82.drv-0/. , but
apparently that is not the case from within guix-daemon, even though it
_is_ the case when I set up the chroot manually using "mount --bind".

One notable difference between the chroot I set up is that the bind
mounts I created were part of the global namespace, whereas guix-daemon
restricts the bind mounts to a private namespace.

My initial hypothesis is that this is a namespace-related bug in Linux
(the kernel).  In case it has already been fixed, I will first work on
upgrading Linux to 3.10.15 (and if that fails, 3.11.x).

Any other ideas?

     Mark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]