Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1155410 - An LXC domain without console dies soon after start
An LXC domain without console dies soon after start
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt (Show other bugs)
7.1
x86_64 Linux
medium Severity medium
: rc
: ---
Assigned To: Ján Tomko
Virtualization Bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2014-10-22 01:58 EDT by yangyang
Modified: 2015-03-05 02:46 EST (History)
6 users (show)

See Also:
Fixed In Version: libvirt-1.2.8-7.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-03-05 02:46:25 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
/var/log/messages (10.82 KB, text/plain)
2014-10-22 01:58 EDT, yangyang
no flags Details
/var/log/libvirtd.log (627.08 KB, text/plain)
2014-10-22 01:58 EDT, yangyang
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0323 normal SHIPPED_LIVE Low: libvirt security, bug fix, and enhancement update 2015-03-05 07:10:54 EST

  None (edit)
Description yangyang 2014-10-22 01:58:07 EDT
Created attachment 949257 [details]
/var/log/messages

Description of problem:
Define/start a lxc without <console../> defined in xml. It is stopped by systemd soon. So libvirt should check the xml and forbid to start the container without console

Version-Release number of selected component (if applicable):
libvirt-1.2.8-5.el7.x86_64
3.10.0-189.el7.x86_64
systemd-208-14.el7.x86_64'

How reproducible:
100%

1. define/start a lxc without console
# cat lxc.xml
<domain type='lxc'>
  <name>lxc-test</name>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64'>exe</type>
<init>/bin/sh</init>  
</os>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/libvirt_lxc</emulator>
    <interface type='network'>
      <mac address='52:54:00:8f:13:eb'/>
      <source network='default'/>
    </interface>
  </devices>
</domain>

# virsh -c lxc:/// define lxc.xml

# virsh -c lxc:/// start lxc-test
Domain lxc-test started

2. check the lxc status
# virsh -c lxc:/// list --all
 Id    Name                           State
----------------------------------------------------
 -     lxc-test                       shut off

Actual result:
lxc without console can be started by libvirtd, but it is
stopped by systemd soon

Expected result:
libvirt should forbid to start the lxc without <console../> defining in xml

Additional info:
Comment 1 yangyang 2014-10-22 01:58:50 EDT
Created attachment 949259 [details]
/var/log/libvirtd.log
Comment 3 Ján Tomko 2014-10-31 05:30:15 EDT
Upstream patch:
https://www.redhat.com/archives/libvir-list/2014-October/msg01101.html
Comment 4 Ján Tomko 2014-11-05 07:19:58 EST
Now pushed upstream:
commit 44686f6523cb30a174c052a242fa15f6a2b364e5
Author:     Ján Tomko <jtomko@redhat.com>
AuthorDate: 2014-10-31 09:51:23 +0100
Commit:     Ján Tomko <jtomko@redhat.com>
CommitDate: 2014-11-04 15:07:09 +0100

    Require at least one console for LXC domain
    
    A domain without a console quietly dies soon after start,
    because we try to set /dev/null as a controlling TTY
    2014-10-30 15:10:59.705+0000: 1: error : lxcContainerSetupFDs:283 :
    ioctl(TIOCSCTTY) failed: Inappropriate ioctl for device
    
    Report an error early instead of trying to start it.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1155410

git describe: v1.2.10-17-g44686f6
Comment 7 Shanzhi Yu 2014-11-26 01:33:51 EST
Verify this bug with libvirt-1.2.8-9.el7.x86_64.

1. Define a lxc guest without any console

# virsh  -c lxc:/// dumpxml lxc-test
<domain type='lxc'>
  <name>lxc-test</name>
  <uuid>b637ffd5-0fcc-48fa-95f3-bbd0504d8643</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64'>exe</type>
    <init>/bin/sh</init>
  </os>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/libvirt_lxc</emulator>
    <filesystem type='mount' accessmode='passthrough'>
      <source dir='/'/>
      <target dir='/'/>
    </filesystem>
    <interface type='network'>
      <mac address='52:54:00:8f:13:eb'/>
      <source network='default'/>
    </interface>
  </devices>
  <seclabel type='none' model='selinux'/>
</domain>

2. Try to start lxc

# virsh  -c lxc:/// start lxc-test
error: Failed to start domain lxc-test
error: unsupported configuration: At least one PTY console is required

The result is expected, so I will change this bug to VERIFIED status
Comment 9 errata-xmlrpc 2015-03-05 02:46:25 EST
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/RHSA-2015-0323.html

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