Bug 1228064 - Mock fails to enter a chroot
Summary: Mock fails to enter a chroot
Keywords:
Status: CLOSED DUPLICATE of bug 1224732
Alias: None
Product: Fedora
Classification: Fedora
Component: mock
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Clark Williams
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-06-04 07:04 UTC by Mathieu Bridon
Modified: 2015-06-04 11:33 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-06-04 11:33:10 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Mathieu Bridon 2015-06-04 07:04:37 UTC
Here's a reproducer:

 # rm -fr /var/lib/mock/* /var/cache/mock/*
 $ mock -r fedora-rawhide-x86_64 --init
 [... snip mock output ...]
 $ mock -r fedora-rawhide-x86_64 --shell
 [... snip mock output ...]
 <mock-chroot>sh-4.3# 

So entering the shell works here.

Now let's try something:

 <mock-chroot>sh-4.3# logout
 $ mock -r fedora-rawhide-x86_64 --install dnf
 [... snip mock output ...]
 $ mock -r fedora-rawhide-x86_64 --shell
 INFO: mock.py version 1.2.8 starting (python version = 3.4.2)...
 Start: init plugins
 INFO: selinux disabled
 Finish: init plugins
 Start: run
 Start: chroot init
 INFO: calling preinit hooks
 INFO: enabled root cache
 INFO: enabled dnf cache
 Start: cleaning dnf metadata
 Finish: cleaning dnf metadata
 INFO: enabled ccache
 Traceback (most recent call last):
   File "/usr/sbin/mock", line 831, in <module>
     main()
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/sbin/mock", line 653, in main
     run_command(options, args, config_opts, commands, buildroot, state)
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/sbin/mock", line 684, in run_command
     commands.init(do_log=False)
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/lib/python3.4/site-packages/mockbuild/backend.py", line 123, in init
     self.buildroot.initialize(**kwargs)
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 84, in initialize
     self._init(prebuild=prebuild, do_log=do_log)
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 128, in _init
     self._setup_devices()
   File "/usr/lib/python3.4/site-packages/mockbuild/trace_decorator.py", line 84, in trace
     result = func(*args, **kw)
   File "/usr/lib/python3.4/site-packages/mockbuild/buildroot.py", line 442, in _setup_devices
     os.symlink("/proc/self/mounts", self.make_chroot_path('etc', 'mtab'))
 FileExistsError: [Errno 17] File exists: '/proc/self/mounts' -> '/var/lib/mock/fedora-rawhide-x86_64/root/etc/mtab'

It seems to me mock should handle this more gracefully: if the destination of the symlink already exists, either do nothing, or remove it before symlinking it.

Comment 1 Mathieu Bridon 2015-06-04 07:40:30 UTC
And I see it's fixed upstream in commit cd3406f2eb4449a442e15bb8b1653436585c7c1c

Can we get that in Fedora, please? :)

Comment 2 Miroslav Suchý 2015-06-04 11:33:10 UTC

*** This bug has been marked as a duplicate of bug 1224732 ***


Note You need to log in before you can comment on or make changes to this bug.