Mock fails when /var/cache/mock is bind-mounted.
Björn Persson
bjorn at xn--rombobjrn-67a.se
Sun Feb 13 18:36:44 UTC 2011
Chris Adams wrote:
> Once upon a time, Björn Persson <bjorn at xn--rombobjrn-67a.se> said:
> > I can imagine that the file permissions might be wrong, although they
> > seem OK to me, but the error is that the directory doesn't exist. Why
> > are the directories removed and not re-created?
>
> You mention the probable cause, but you don't show the perms. The best
> way to get the perms correct is to:
>
> - umount /var/cache/mock
> - chown --reference=/var/cache/mock /disk/data/mock
> - chmod --reference=/var/cache/mock /disk/data/mock
> - chcon --reference=/var/cache/mock /disk/data/mock
> - mount -t bind /disk/data/mock /var/cache/mock
I moved the whole tree with cp -a and replaced the original /var/cache/mock
with a symbolic link. When that didn't work I tried a bind mount instead. Thus
I can't use /var/cache/mock as a reference, but the permissions should be
right since I used cp -a. What I have now is:
[root at hactar ~]# ls -la /var/cache/mock/
totalt 16
drwxr-sr-x 3 root mock 4096 13 feb 17.17 .
drwxr-xr-x. 18 root root 4096 13 feb 16.58 ..
drwxr-sr-x 5 root mock 4096 13 feb 17.17 fedora-rawhide-x86_64
[root at hactar ~]# mount /disk/data/mock/
[root at hactar ~]# ls -la /var/cache/mock/
totalt 32
drwxrwsr-x 7 root mock 4096 13 feb 18.10 .
drwxr-xr-x. 18 root root 4096 13 feb 16.58 ..
drwxr-sr-x 5 root mock 4096 8 mar 2010 fedora-11-x86_64
drwxr-sr-x 5 root mock 4096 6 feb 02.35 fedora-13-x86_64
drwxr-sr-x 5 root mock 4096 29 aug 17.03 fedora-14-i386
drwxr-sr-x 5 root mock 4096 28 aug 00.26 fedora-14-x86_64
drwxr-sr-x 5 root mock 4096 2 aug 2010 fedora-rawhide-i386
The former works and the latter does not. I see one difference, the group write
permission. Let's try removing that.
[root at hactar ~]# chmod g-w /disk/data/mock/
[root at hactar ~]# ls -la /var/cache/mock/
totalt 32
drwxr-sr-x 7 root mock 4096 13 feb 18.23 .
drwxr-xr-x. 18 root root 4096 13 feb 16.58 ..
drwxr-sr-x 5 root mock 4096 8 mar 2010 fedora-11-x86_64
drwxr-sr-x 5 root mock 4096 6 feb 02.35 fedora-13-x86_64
drwxr-sr-x 5 root mock 4096 29 aug 17.03 fedora-14-i386
drwxr-sr-x 5 root mock 4096 28 aug 00.26 fedora-14-x86_64
drwxr-sr-x 5 root mock 4096 2 aug 2010 fedora-rawhide-i386
Nope. It still fails in the same way.
> Alternately, rather than using bind mounts, you could edit
> /etc/mock/site-defaults.cfg to move from /var/{lib,cache}/mock to
> /disk/data/mock. You still need to get the permissions correct though.
Even that doesn't help. Maybe it isn't caused by the bind mount after all.
I see this note in site-defaults.cfg:
# Note: the path pointed to by basedir and cache_topdir must be owned
# by group 'mock' and must have mode: g+rws
so I put that write permission back. It still fails.
So it's not caused by the permissions that ls -l shows, and SElinux is
disabled. The only difference in mount options is that / is mounted with
relatime and /disk/data with noatime. Is it conceivable that Mock doesn't work
with noatime? What else is there to check?
Björn Persson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://lists.fedoraproject.org/pipermail/devel/attachments/20110213/9d07bf7b/attachment.bin
More information about the devel
mailing list