Mock exception on umount

David Hrbáč hrbac.conf at seznam.cz
Fri Nov 5 12:55:21 UTC 2010


Hi,
I'm trying to build packages with mock 1.0.12. I use this script:
for i in {4-x86_64,4-i386,5-x86_64,5-i386}; do  mock -r centos-$i
syslinux-4.03-0.pre5.el5.hrb.src.rpm
--resultdir=./syslinux/"%(dist)s"/"%(target_arch)s"/;  done
to produce my rpms. With chroots based on RHEL4.x/CentOS4.x I'm getting
this error. With 5.x tree it is fine.

INFO: Mock Version: 1.0.12
INFO: mounting tmpfs.
INFO: enabled root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
INFO: enabled ccache
State Changed: running yum
State Changed: creating cache
State Changed: setup
State Changed: build
INFO: unmounting tmpfs.
ERROR: Exception(syslinux-4.03-0.pre5.el5.hrb.src.rpm)
Config(centos-4-i386) 1 minutes 40 seconds
INFO: Results and/or logs in: ./syslinux/el4/i386/
INFO: Cleaning up build root ('clean_on_failure=True')
State Changed: lock buildroot
State Changed: clean
Traceback (most recent call last):
  File "/usr/sbin/mock", line 743, in ?
    main(retParams)
  File "/usr/sbin/mock", line 685, in main
    do_rebuild(config_opts, chroot, args)
  File "<peak.util.decorators.rewrap wrapping __main__.do_rebuild at
0x2B507B3E5AA0>", line 3, in do_rebuild
  File "/usr/lib/python2.4/site-packages/mock/trace_decorator.py", line
70, in trace
    result = func(*args, **kw)
  File "/usr/sbin/mock", line 432, in do_rebuild
    chroot.clean()
  File "<peak.util.decorators.rewrap wrapping mock.backend.clean at
0x2B5077D12F50>", line 3, in clean
  File "/usr/lib/python2.4/site-packages/mock/trace_decorator.py", line
70, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.4/site-packages/mock/backend.py", line 141, in
clean
    self._unlock_and_rm_chroot()
  File "<peak.util.decorators.rewrap wrapping
mock.backend._unlock_and_rm_chroot at 0x2B5077D15488>", line 3, in
_unlock_and_rm_chroot
  File "/usr/lib/python2.4/site-packages/mock/trace_decorator.py", line
70, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.4/site-packages/mock/backend.py", line 153, in
_unlock_and_rm_chroot
    mock.util.rmtree(t, selinux=self.selinux)
  File "<peak.util.decorators.rewrap wrapping mock.util.rmtree at
0x2B5077D060C8>", line 3, in rmtree
  File "/usr/lib/python2.4/site-packages/mock/trace_decorator.py", line
70, in trace
    result = func(*args, **kw)
  File "/usr/lib/python2.4/site-packages/mock/util.py", line 87, in rmtree
    shutil.rmtree(path, *args, **kargs)
  File "/usr/lib64/python2.4/shutil.py", line 163, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "/usr/lib64/python2.4/shutil.py", line 172, in rmtree
    onerror(os.rmdir, path, sys.exc_info())
  File "/usr/lib64/python2.4/shutil.py", line 170, in rmtree
    os.rmdir(path)
OSError: [Errno 16] Device or resource busy:
'/var/lib/mock/centos-4-i386.tmp/root'

After building I can see:

[root at builder2 mock]# lsof | grep mock
udevd     14726      root  cwd       DIR               0,24       40
 504796 /var/lib/mock/centos-4-i386.tmp/root
udevd     14726      root  rtd       DIR               0,24       40
 504796 /var/lib/mock/centos-4-i386.tmp/root
udevd     14726      root  txt       REG               0,24    11024
 525683 /var/lib/mock/centos-4-i386.tmp/root/sbin/udevd (deleted)
udevd     14726      root  DEL       REG               0,24
 512893 /var/lib/mock/centos-4-i386.tmp/root/lib/libselinux.so.1
udevd     14726      root  DEL       REG               0,24
 512658 /var/lib/mock/centos-4-i386.tmp/root/lib/tls/libc-2.3.4.so
udevd     14726      root  DEL       REG               0,24
 512583 /var/lib/mock/centos-4-i386.tmp/root/lib/ld-2.3.4.so
udevd     14726      root    0u      CHR                1,3
 504826 /var/lib/mock/centos-4-i386.tmp/root/dev/null (deleted)
udevd     14726      root    1u      CHR                1,3
 504826 /var/lib/mock/centos-4-i386.tmp/root/dev/null (deleted)
udevd     14726      root    2u      CHR                1,3
 504826 /var/lib/mock/centos-4-i386.tmp/root/dev/null (deleted)

There remains udevd running and I'm not able to delete the chroot folder
even as root.
[root at builder2 mock]# rm /var/lib/mock/* -rf; rm /var/cache/mock/* -rf
rm: cannot remove directory `/var/lib/mock/centos-4-i386.tmp/root':
Device or resource busy

Any hints?
Thanks,
David Hrbáč


More information about the buildsys mailing list