Date: Mon, 20 Aug 2012 13:42:31 +0200 From: =?ISO-8859-1?Q?Bernhard_Fr=F6hlich?= <decke@FreeBSD.org> To: Tim Kientzle <tim@kientzle.com> Cc: Garrett Cooper <yanegomi@gmail.com>, Current FreeBSD <freebsd-current@freebsd.org>, Paul Schenkeveld <freebsd@psconsult.nl> Subject: Re: make package fails in chroot: tar: getvfsbyname failed: No such file or directory Message-ID: <CAE-m3X3nymg9B5X9kYv9aRy_jKuiLF5_zw1%2B15rbeL_XpS66Hg@mail.gmail.com> In-Reply-To: <E2CBB30B-9366-429F-92B7-24677AA5E328@kientzle.com> References: <20120812132047.GA33526@psconsult.nl> <AC39BA73-E244-4A15-9E07-62CE0433B733@kientzle.com> <CAGH67wRJ4cz1vbntk-PiZ0Z58AoYo1-rm5zAhwZeTQzhU_0YQw@mail.gmail.com> <E2CBB30B-9366-429F-92B7-24677AA5E328@kientzle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Aug 19, 2012 at 10:01 PM, Tim Kientzle <tim@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@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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAE-m3X3nymg9B5X9kYv9aRy_jKuiLF5_zw1%2B15rbeL_XpS66Hg>