Devuan bug report logs - #392
When pid1==runit, mis-detects container and doesn't start

version graph

Package: eudev; Maintainer for eudev is Devuan Dev Team <devuan-dev@lists.dyne.org>;

Reported by: KORN Andras <korn-debbugs@elan.rulez.org>

Date: Sun, 9 Feb 2020 10:48:02 UTC

Severity: normal

Found in version 3.2.9-4

Done: Svante Signell <svante.signell@gmail.com>

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to devuan-bugs@lists.dyne.org, Devuan Dev Team <devuan-dev@lists.dyne.org>:
bug#392; Package eudev. (Sun, 09 Feb 2020 10:48:02 GMT) (full text, mbox, link).


Acknowledgement sent to KORN Andras <korn-debbugs@elan.rulez.org>:
New bug report received and forwarded. Copy sent to Devuan Dev Team <devuan-dev@lists.dyne.org>.

Your message specified a Severity: in the pseudo-header, but the severity value important was not recognised. The default severity normal is being used instead. The recognised values are: critical, grave, normal, minor, wishlist.

(Sun, 09 Feb 2020 10:48:04 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.devuan.org (full text, mbox, reply):

From: KORN Andras <korn-debbugs@elan.rulez.org>
To: Devuan Bug Tracking System <submit@bugs.devuan.org>
Subject: When pid1==runit, mis-detects container and doesn't start
Date: Sun, 9 Feb 2020 11:34:48 +0100
Package: eudev
Version: 3.2.9-4
Severity: important

Hi,

the /etc/init.d/eudev initscript has this bit:

if ! ps -p1|grep -q "init\|systemd"; then
  log_warning_msg "udevd does not support containers, not started"
  exit 0
fi

If running with runit as the init system (which is obviously neither
sysvinit nor systemd), the script exits without starting eudev, which
results in no keyboard and mouse under X and no local way of switching to a
text console.

Perhaps use virt-what to detect containers instead?

András

-- 
                   Can February March? No, but April May...

Information forwarded to devuan-bugs@lists.dyne.org, Devuan Dev Team <devuan-dev@lists.dyne.org>:
bug#392; Package eudev. (Mon, 10 Feb 2020 09:18:01 GMT) (full text, mbox, link).


Acknowledgement sent to svante.signell@gmail.com:
Extra info received and forwarded to list. Copy sent to Devuan Dev Team <devuan-dev@lists.dyne.org>. (Mon, 10 Feb 2020 09:18:03 GMT) (full text, mbox, link).


Message #10 received at 392@bugs.devuan.org (full text, mbox, reply):

From: Svante Signell <svante.signell@gmail.com>
To: 392@bugs.devuan.org
Subject: Re: [devuan-dev] bug#392: When pid1==runit, mis-detects container and doesn't start
Date: Mon, 10 Feb 2020 10:17:41 +0100
On Sun, 2020-02-09 at 11:34 +0100, KORN Andras wrote:
> Package: eudev
> Version: 3.2.9-4
> Severity: important
> 
> Hi,
> 
> the /etc/init.d/eudev initscript has this bit:
> 
> if ! ps -p1|grep -q "init\|systemd"; then
>   log_warning_msg "udevd does not support containers, not started"
>   exit 0
> fi

Thank you for your report.

So the name of pid 1 for runit-init is runit?
Then the test could be
-q "init\|runit\|systemd"

What about other init systems, like openrc-init? Perhaps the test should be
reversed if ps -p1 | -q "container tests here" instead.

The Debian package has a worse bug, the test is
if [ ! -w /sys ]; then which is always true, making it impossible to start udev
manually.

> If running with runit as the init system (which is obviously neither
> sysvinit nor systemd), the script exits without starting eudev, which
> results in no keyboard and mouse under X and no local way of switching to a
> text console.
> 
> Perhaps use virt-what to detect containers instead?

I've been looking for methods to detect containers, but have not found virt-
what. Do you have a link or a description?



Information forwarded to devuan-bugs@lists.dyne.org, Devuan Dev Team <devuan-dev@lists.dyne.org>:
bug#392; Package eudev. (Mon, 10 Feb 2020 14:48:01 GMT) (full text, mbox, link).


Acknowledgement sent to KORN Andras <korn-debbugs@elan.rulez.org>:
Extra info received and forwarded to list. Copy sent to Devuan Dev Team <devuan-dev@lists.dyne.org>. (Mon, 10 Feb 2020 14:48:03 GMT) (full text, mbox, link).


Message #15 received at 392@bugs.devuan.org (full text, mbox, reply):

From: KORN Andras <korn-debbugs@elan.rulez.org>
To: 392@bugs.devuan.org
Subject: Re: When pid1==runit, mis-detects container and doesn't start
Date: Mon, 10 Feb 2020 15:36:13 +0100
Hi,

> So the name of pid 1 for runit-init is runit?
> Then the test could be
> -q "init\|runit\|systemd"
> 
> What about other init systems, like openrc-init? Perhaps the test should be
> reversed if ps -p1 | -q "container tests here" instead.

runit is a perfectly viable init system for a container, so detecting that
pid1==runit gives no clue whether you're inside a container or not.

> > Perhaps use virt-what to detect containers instead?
>
> I've been looking for methods to detect containers, but have not found virt-
> what. Do you have a link or a description?

Sure:

Package: virt-what
Status: install ok installed
Priority: extra
Section: admin
Installed-Size: 48
Maintainer: Debian Libvirt Maintainers <pkg-libvirt-maintainers@lists.alioth.debian.org>
Architecture: amd64
Version: 1.19-1
Depends: dmidecode, libc6 (>= 2.4)
Description: detect if we are running in a virtual machine
 Virt-what is a shell script which can be used to detect if the program is
 running in a virtual machine (VM).
 .
 The program prints out a list of "facts" about the virtual machine, derived
 from heuristics. One fact is printed per line.
Description-md5: 5d47386fbabb50c244e6526dada61a44
Homepage: https://people.redhat.com/~rjones/virt-what/

% apt-cache policy virt-what                                                                                                                                                                                                                                                         =79%
virt-what:
  Installed: 1.19-1
  Candidate: 1.19-1
  Version table:
 *** 1.19-1 500
        500 http://packages.devuan.org/merged unstable/main amd64 Packages
        100 /var/lib/dpkg/status
     1.15-1+deb9u1 500
        500 http://packages.devuan.org/merged ascii/main amd64 Packages

Note that while virt-what detects lxc, it doesn't currently correctly detect
all versions of linux-vserver.

Best regards,

András

Ps. I only found your reply by accident. I'm not subscribed do the Devuan
mailing lists and bugs.devuan.org doesn't seem to have Cc'd me. Please Cc me
explicitly.

-- 
  Illegal copies are not theft. Theft removes the original; a copy is a copy.

Reply sent to svante.signell@gmail.com:
You have taken responsibility. (Mon, 24 Feb 2020 10:33:01 GMT) (full text, mbox, link).


Notification sent to KORN Andras <korn-debbugs@elan.rulez.org>:
bug acknowledged by developer. (Mon, 24 Feb 2020 10:33:07 GMT) (full text, mbox, link).


Message #20 received at 392-close@bugs.devuan.org (full text, mbox, reply):

From: Svante Signell <svante.signell@gmail.com>
To: 392-close@bugs.devuan.org
Subject: [Devuan-bugs] bug#392: When pid1==runit, mis-detects container and doesn't start
Date: Mon, 24 Feb 2020 11:15:59 +0100
Fixed by eudev-3.2.9-6, closing.




Send a report that this bug log contains spam.


Devuan BTS -- Powered by Debian bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.

Devuan Bugs Owner <owner@bugs.devuan.org>.
Last modified: Wed May 27 09:05:33 2020;