Bug 1123452

Summary: systemd-nspawn Host and machine ids are equal: refusing to link journals
Product: Red Hat Enterprise Linux 7 Reporter: Major Hayden 🤠 <mhayden>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Karel Volný <kvolny>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: jscotka, kvolny, lnykryn, madko, systemd-maint-list
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: systemd-208-12.el7 Doc Type: Bug Fix
Doc Text:
Cause: When generating UUID for machine we have tried to determine if we are running in VM and if so we have set UUID to match the VM. If that failed we have used other methods. Consequence: When running container inside VM, we have found that we are running inside VM and every container got the same name as the host. Fix: We have moved detection of VM to the end. Result: Containers on VM hosts have proper unique UUIDs.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 11:11:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Major Hayden 🤠 2014-07-25 17:28:45 UTC
Description of problem:
When running a container inside of a KVM virtual machine, systemd tries to use the same UUID as the KVM virtual machine for the container.  This prevents the journals from being linked and prevents the container from starting via the systemd-nspawn@[containername].service

Version-Release number of selected component (if applicable):
systemd-208-11.el7.x86_64

Steps to Reproduce:
1. Build a RHEL 7 root in /var/lib/container/rhel7 using yum --installroot
2. Start the container using: systemd-nspawn -bD /var/lib/container/rhel7
3. The boot sequence will display: "Initializing machine ID from KVM UUID."
4. Stop the container.
5. ln -s /usr/lib/systemd/system/systemd-nspawn\@.service /etc/systemd/system/multi-user.target.wants/systemd-nspawn\@rhel7.service
6. systemctl start systemd-nspawn@rhel7
7. Container will not start.  Run journalctl and you'll find this:

systemd-nspawn[9912]: Host and machine ids are equal (59515fd022d049bb81418697bd315def): refusing to link journals
systemd-nspawn[9912]: Container failed with error code 1.

Actual results:
Container does not start. Errors appear in journald.

Expected results:
Container should start with a UUID that is different than the KVM container and journals should be linked.

Additional info:

Relevant thread from systemd-devel list:

  https://www.mail-archive.com/systemd-devel@lists.freedesktop.org/msg18617.html

Possible fix from Lennart:

  http://cgit.freedesktop.org/systemd/systemd/commit/?id=0b36bbc42d3a408531517a02acaf56105b863d55

For what it's worth, Fedora 20 runs a *very* similar version of systemd and it does not have this bug:

  systemd-208-20.fc20.x86_64 <-- works

Comment 6 errata-xmlrpc 2015-03-05 11:11:18 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0509.html