From unknown Fri Mar 29 06:13:11 2024 X-Loop: owner@bugs.devuan.org Subject: bug#483: eudev: eudev sometimes fails to generate initial hotplug events Reply-To: David Kuehling , 483@bugs.devuan.org Resent-From: David Kuehling Resent-To: devuan-bugs@lists.dyne.org Resent-CC: dvdkhlng@posteo.de, Devuan Dev Team X-Loop: owner@bugs.devuan.org Resent-Date: Mon, 15 Jun 2020 15:18:02 +0000 Resent-Message-ID: Resent-Sender: owner@bugs.devuan.org X-Devuan-PR-Message: report 483 X-Devuan-PR-Package: eudev X-Devuan-PR-Keywords: Received: via spool by submit@bugs.devuan.org id=B.159223380313351 (code B); Mon, 15 Jun 2020 15:18:02 +0000 Received: (at submit) by bugs.devuan.org; 15 Jun 2020 15:10:03 +0000 Delivered-To: devuanbugs@dyne.org Received: from tupac3.dyne.org [195.169.149.119] by doc.devuan.org with IMAP (fetchmail-6.4.0.beta4) for (single-drop); Mon, 15 Jun 2020 15:10:03 +0000 (UTC) Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by vm6.ganeti.dyne.org (Postfix) with ESMTPS id 63C77F604A5 for ; Mon, 15 Jun 2020 17:08:48 +0200 (CEST) Authentication-Results: vm6.ganeti.dyne.org; dkim=pass (2048-bit key; secure) header.d=posteo.de header.i=@posteo.de header.b="dKuRCLqw"; dkim-atps=neutral Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id 6C61D160062 for ; Mon, 15 Jun 2020 17:08:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1592233724; bh=5xLcoFLMzhy9RvzqQmmsE8XtB1X/x8I6EYRQUHQdOWw=; h=From:To:Subject:Date:From; b=dKuRCLqwwWI18qA8HRGFrIGZBtDhsbgrBO6IcRPc7iyuKbcIG8JaBGQZ1wefzvjhq +9Z8KUCwuFiQZqfkHILLvtt2YCeoVSuJQNidCMh20g38HcjUbQ3hNlLc5Opl+1He23 xB/D0rz0iCU9jIR9o3oGUwlMKUFfGlAZGKvUGv0Uf6zhjWGyvhdMPxvb+8jSVuGx+D x/8N0G1kwUykRKEkr8YcrqEWzzciiPV4Cz7qD5fu289v+/FEZVR0EO7jEa2okbNDup 7mPhH7mX7EHGWASpk9y0CYOnxfCt2BFcmlDGDWwkWpal8Zyhv5ggvsGUnW5zQeRjoj HG5g1bJz+yf+w== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 49lvqG3d14z6tmR for ; Mon, 15 Jun 2020 17:08:38 +0200 (CEST) From: David Kuehling To: Devuan Bug Tracking System Date: Mon, 15 Jun 2020 17:08:38 +0200 Message-ID: <87v9jsbc3t.fsf@snail.snail.pool> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_PASS autolearn=disabled version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tupac3.dyne.org Package: eudev Version: 3.2.7-6 Severity: normal File: /etc/init.d/eudev Dear Maintainer, eudev sometimes fails to generate the initial hotplug events for one of my systems. The symptoms are that many required kernel modules are missing after boot (no sound, no 3-D acceleration). The error is not determinstic. Sometimes the system boots up successfully and everything works. Sometimes the system boots up and essential kernel modules are missing. Doing '/etc/init.d/eudev stop' followed by '/etc/init.d/eudev start' corrects the issue (i.e. results in all modules being loaded). The issue can also be corrected by manually running 'udevadm trigger --action=add'. The actual root cause seems to be a race condition in the /etc/init.d/eudev startup script: The script first starts eudev via start-stop-daemon, then calls 'udevadm trigger --action=add'. On the system in question, after modifying the script, adding 'sleep 1s' after start-stop-daemon, the startup now succeeded all the (two) times I tried. Note that the system in question runs from a root partition that resides on a NBD-devices, so startup times of eudev may be very different from a normal HDD-based system, thereby amplifying the likelhood of the race. I have no clear idea how a proper fix for that race would look like. Clearly 'start-stop-daemon --background' does NOT wait for the daemon to be operational and looks like the wrong approach. Maybe running start-stop-daemon without "--background" and depending on eudev's "--daemon" option is better? Does eudev support using start-stop-daemon's --notify-await command? Should we run 'udevadm trigger' in a loop until it succeeds? -- System Information: Distributor ID: Debian Description: Devuan GNU/Linux 3 (beowulf) Release: 3 Codename: beowulf Architecture: x86_64 Kernel: Linux 4.19.0-9-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) LSM: AppArmor: enabled Versions of packages eudev depends on: ii adduser 3.118 ii debconf 1.5.71 ii libblkid1 2.33.1-0.1+devuan1~beowulf2 ii libc6 2.28-10 ii libeudev1 3.2.7-6 ii libkmod2 26-1 ii libselinux1 2.8-1+b1 ii lsb-base 10.2019051400 ii procps 2:3.3.15-2+devuan1 ii util-linux 2.33.1-0.1+devuan1~beowulf2 eudev recommends no packages. eudev suggests no packages. -- no debconf information