Re: make package fails in chroot: tar: getvfsbyname failed: No such file or directory

From: Bernhard Fröhlich <decke_at_FreeBSD.org>
Date: Mon, 20 Aug 2012 13:42:31 +0200
On Sun, Aug 19, 2012 at 10:01 PM, Tim Kientzle <tim_at_kientzle.com> wrote:
>
> On Aug 19, 2012, at 12:17 PM, Garrett Cooper wrote:
>
>> On Sun, Aug 19, 2012 at 9:45 AM, Tim Kientzle <tim_at_kientzle.com> wrote:
>>>
>>> On Aug 12, 2012, at 6:20 AM, Paul Schenkeveld wrote:
>>>
>>>> Hi,
>>>>
>>>> I have a wrapper script that builds packages in a chroot environment
>>>> which happily runs on release 6 thru 9 and earlier 10 but fails with:
>>>>
>>>> tar: getvfsbyname failed: No such file or directory
>>>>
>>>> on a recent -CURRENT.
>>>
>>> libarchive does do an initial getvfsbyname() when you ask it
>>> to traverse a directory tree so that it can accurately handle later
>>> requests about mountpoints and filesystem types.  This code
>>> is admittedly a little intricate.
>>
>>    The problem most likely is the fact that all mountpoints are
>> exposed via chroot, thus, if it's checking to see if a mountpoint
>> exists, it may exist outside of the chroot.
>>
>
> I reviewed the code to refresh my memory.   Some
> of what I said before was not quite right.
>
> Libarchive's directory traversal tracks information about
> the filesystem type so that clients such as bsdtar can
> efficiently skip synthetic filesystems (/dev or /proc) or
> network filesystems (NFS or SMB mounts).
>
> The net effect is something like this:
>
>    For each file:
>        stat() or lstat() or fstat() the file
>        look up dev number in an internal cache
>        if the dev number is new:
>             fstatfs() the open fd to get the FS name
>             getvfsbyname() to identify the FS type
>
> Unless there's a logic error in libarchive itself, this
> would suggest that somehow fstatfs() is returning
> a filesystem type that getvfsbyname() can't
> identify.
>
> Paul:
>     What filesystem are you using?
>
>     What does "mount" show?
>
>     Does it work outside the chroot?

I also see the same on the redports.org build machines.
It builds within a jail there which is completely on a tmpfs.
Interestinly everything is fine with a 10-CURRENT/amd64
jail but it breaks in a 10-CURRENT/i386 jail. Both are
running on the same 10-CURRENT/amd64 which is
around 2 months old.

https://redports.org/buildarchive/20120814130205-56327/

-- 
Bernhard Froehlich
http://www.bluelife.at/
Received on Mon Aug 20 2012 - 09:42:39 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC