public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Richard Yao" <ryao@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/genkernel:master commit in: defaults/
Date: Sun,  9 Jun 2013 13:48:27 +0000 (UTC)	[thread overview]
Message-ID: <1370785659.c6cd9c59f8cfb7993f79754cf4dbc1f21040c0f7.ryao@gentoo> (raw)

commit:     c6cd9c59f8cfb7993f79754cf4dbc1f21040c0f7
Author:     Richard Yao <ryao <AT> gentoo <DOT> org>
AuthorDate: Sun Jun  9 13:13:58 2013 +0000
Commit:     Richard Yao <ryao <AT> gentoo <DOT> org>
CommitDate: Sun Jun  9 13:47:39 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=c6cd9c59

Workaround busybox modprobe's inability to load ZFS modules

Commit 3a054014e880e5b1ff28e3d87767c45a073da6b5 replaced our modprobe
with busybox's modprobe. Unfortunately, busybox's modprobe appears to be
unable to properly load modules with more than 1 level of dependencies.

The zfs and zpool commands will invoke modprobe if /dev/zvol is missing,
which concealed this problem. However, this caused problems because some
invocations would fail and under certain circumstances, init would be
killed, causing a kernel panic. This issue was made clear by commit
71d35173727dc968d7baa2107accb99ebbc5b188, which ensured that the zpool
and zfs commands were not run until the ZFS module was loaded.

busybox modprobe's failure to load module dependencies correctly appears
to occur because busybox modprobe does not wait until until a module is
loaded before loading a module that depends on it, which is a race. It
would be best to correct this race by waiting until the module has
properly loaded, but it is not clear that the race is the only thing
going wrong and developer time is a premium.

We implement a workaround by modifying the busy loop added in the
previous commit to explicit call `modprobe zfs` on each iteration. While
the first few calls fail due to bugs in busybox modprobe, it will
eventually work, after which each call is a noop. This lets us keep
looping until either the loop exit condition that /dev/zvol exist is
reached or the 5 second timeout is reached.

Once the busybox modprobe issue is fixed, this workaround should be safe
to revert.

Signed-off-by: Richard Yao <ryao <AT> gentoo.org>

---
 defaults/initrd.scripts | 5 +++--
 defaults/linuxrc        | 2 --
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index 35e5957..cb0fcb8 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -637,9 +637,10 @@ chooseKeymap() {
 }
 
 # This helper function is to be called using call_func_timeout.
-# It enables us to wait a reasonable amount of time until /dev/zfs appears.
+# This works around the inability of busybox modprobe to handle complex module dependencies.
+# This also enables us to wait a reasonable amount of time until /dev/zfs appears.
 waitForZFS() {
-	while [ ! -c /dev/zfs ]; do echo >/dev/null; done;
+	while [ ! -c /dev/zfs ]; do modprobe zfs 2> /dev/null; done;
 }
 
 startVolumes() {

diff --git a/defaults/linuxrc b/defaults/linuxrc
index 3784456..d6d0eaa 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -307,8 +307,6 @@ then
 			break
 		fi
 	done
-
-	[ "USE_ZFS" = "1" ] && MY_HWOPTS="${MY_HWOPTS} zfs"
 fi
 
 splash 'init'


             reply	other threads:[~2013-06-09 13:48 UTC|newest]

Thread overview: 339+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-09 13:48 Richard Yao [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-05-23 19:12 [gentoo-commits] proj/genkernel:master commit in: defaults/ Ben Kohler
2024-05-01 18:00 Ben Kohler
2024-02-17  5:16 Robin H. Johnson
2024-02-16 19:39 Ben Kohler
2023-07-27 10:59 Sam James
2023-07-27 10:58 Sam James
2023-07-27 10:56 Sam James
2023-06-28 15:10 Ben Kohler
2022-06-21  2:54 Robin H. Johnson
2022-05-29 16:52 Robin H. Johnson
2022-05-28 20:54 Robin H. Johnson
2022-05-28 20:52 Robin H. Johnson
2022-05-28 20:52 Robin H. Johnson
2022-05-16 19:33 Andreas K. Hüttel
2022-05-16  5:45 Robin H. Johnson
2022-05-16  5:34 Robin H. Johnson
2021-11-16 17:34 Thomas Deutschmann
2021-11-15  3:35 Thomas Deutschmann
2021-09-29 20:35 Thomas Deutschmann
2021-09-08 14:00 Thomas Deutschmann
2021-07-06  0:25 Thomas Deutschmann
2021-07-06  0:25 Thomas Deutschmann
2021-03-27 16:15 Thomas Deutschmann
2021-03-27  0:00 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-21 22:36 Thomas Deutschmann
2021-03-20  0:16 Thomas Deutschmann
2021-03-20  0:16 Thomas Deutschmann
2021-03-20  0:16 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-14 20:05 Thomas Deutschmann
2021-03-08  0:37 Thomas Deutschmann
2021-02-18 23:54 Thomas Deutschmann
2021-02-18 23:12 Thomas Deutschmann
2021-02-15  6:01 Thomas Deutschmann
2021-02-15  6:01 Thomas Deutschmann
2021-02-15  6:01 Thomas Deutschmann
2020-09-02 19:57 Thomas Deutschmann
2020-09-02 13:52 Thomas Deutschmann
2020-09-02 13:52 Thomas Deutschmann
2020-08-30 21:11 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-28 20:18 Thomas Deutschmann
2020-08-26 22:54 Thomas Deutschmann
2020-08-25 17:42 Thomas Deutschmann
2020-08-25 17:42 Thomas Deutschmann
2020-08-24 20:28 Thomas Deutschmann
2020-08-23 20:16 Thomas Deutschmann
2020-08-21 18:48 Thomas Deutschmann
2020-08-19 21:31 Thomas Deutschmann
2020-08-09 20:04 Thomas Deutschmann
2020-08-09 19:51 Thomas Deutschmann
2020-08-04 21:29 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-23 23:57 Thomas Deutschmann
2020-07-16 15:03 Thomas Deutschmann
2020-06-23 19:14 Thomas Deutschmann
2020-06-21 22:15 Thomas Deutschmann
2020-06-12 15:02 Thomas Deutschmann
2020-04-11 20:04 Thomas Deutschmann
2020-04-11 20:04 Thomas Deutschmann
2020-04-11 20:04 Thomas Deutschmann
2020-04-09 17:37 Rick Farina
2020-03-05 15:10 Thomas Deutschmann
2020-03-04 15:41 Rick Farina
2020-02-15 21:14 Thomas Deutschmann
2020-02-14 16:35 Rick Farina
2020-02-14 16:35 Rick Farina
2020-01-05 21:18 Thomas Deutschmann
2020-01-05 21:18 Thomas Deutschmann
2020-01-03 13:37 Ben Kohler
2019-12-14 19:02 Thomas Deutschmann
2019-12-14  0:51 Thomas Deutschmann
2019-12-05 23:52 Thomas Deutschmann
2019-12-05 23:52 Thomas Deutschmann
2019-12-05 23:52 Thomas Deutschmann
2019-12-05 23:52 Thomas Deutschmann
2019-12-02 19:15 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-27 16:40 Thomas Deutschmann
2019-11-26 13:50 Thomas Deutschmann
2019-11-25 13:53 Thomas Deutschmann
2019-11-25 13:53 Thomas Deutschmann
2019-11-25 13:53 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-11-24 20:00 Thomas Deutschmann
2019-10-13 16:00 Thomas Deutschmann
2019-10-13 16:00 Thomas Deutschmann
2019-10-13 16:00 Thomas Deutschmann
2019-10-07 21:56 Thomas Deutschmann
2019-10-07 21:56 Thomas Deutschmann
2019-10-02 22:45 Thomas Deutschmann
2019-10-02 22:45 Thomas Deutschmann
2019-08-29 20:49 Thomas Deutschmann
2019-08-29 20:49 Thomas Deutschmann
2019-08-21 14:49 Thomas Deutschmann
2019-08-16 19:56 Thomas Deutschmann
2019-08-16 19:17 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-08-07 15:46 Thomas Deutschmann
2019-07-29 20:10 Thomas Deutschmann
2019-07-29 20:10 Thomas Deutschmann
2019-07-21 16:26 Thomas Deutschmann
2019-07-18 17:32 Thomas Deutschmann
2019-07-18 17:32 Thomas Deutschmann
2019-07-18 17:32 Thomas Deutschmann
2019-07-18 17:32 Thomas Deutschmann
2019-07-16 22:46 Thomas Deutschmann
2019-07-16 20:30 Thomas Deutschmann
2019-07-16 20:30 Thomas Deutschmann
2019-07-16 16:36 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 22:39 Thomas Deutschmann
2019-07-15 15:37 Thomas Deutschmann
2019-07-15 12:42 Thomas Deutschmann
2019-07-14 19:35 Thomas Deutschmann
2019-06-17 16:58 Ben Kohler
2019-06-05  0:03 Ben Kohler
2019-05-22 19:20 Ben Kohler
2019-03-30  1:28 Thomas Deutschmann
2019-03-30  1:28 Thomas Deutschmann
2019-03-30  1:28 Thomas Deutschmann
2019-03-29 21:26 Robin H. Johnson
2019-03-24 19:47 Thomas Deutschmann
2019-03-07 22:38 Ben Kohler
2019-03-07 22:38 Ben Kohler
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  6:00 Robin H. Johnson
2019-03-01  5:55 Robin H. Johnson
2019-02-28  6:40 Robin H. Johnson
2019-02-28  6:40 Robin H. Johnson
2019-02-28  6:40 Robin H. Johnson
2019-02-28  6:40 Robin H. Johnson
2019-02-19  7:40 Robin H. Johnson
2019-02-19  7:40 Robin H. Johnson
2018-07-25 15:11 Richard Farina
2018-04-05 22:52 Richard Farina
2017-11-15  3:08 Robin H. Johnson
2017-11-15  3:08 Robin H. Johnson
2017-11-15  3:08 Robin H. Johnson
2017-10-31 18:59 Robin H. Johnson
2017-10-31 18:59 Robin H. Johnson
2017-09-07  0:52 Robin H. Johnson
2017-09-07  0:52 Robin H. Johnson
2017-09-07  0:52 Robin H. Johnson
2017-09-07  0:52 Robin H. Johnson
2017-09-04  6:43 Robin H. Johnson
2017-09-04  5:54 Robin H. Johnson
2017-09-04  2:54 Robin H. Johnson
2017-09-04  2:51 Robin H. Johnson
2017-09-03  6:28 Robin H. Johnson
2017-07-14 18:50 Robin H. Johnson
2017-06-23 21:53 Robin H. Johnson
2017-01-08  1:57 Robin H. Johnson
2017-01-08  1:57 Robin H. Johnson
2017-01-08  0:40 Robin H. Johnson
2017-01-08  0:40 Robin H. Johnson
2017-01-07 23:50 Robin H. Johnson
2017-01-07 23:37 Robin H. Johnson
2017-01-02 22:41 Robin H. Johnson
2017-01-02 20:14 Matt Thode
2016-11-08  4:53 Richard Farina
2016-11-01 18:00 Richard Farina
2016-08-31 22:25 Robin H. Johnson
2016-07-05 19:49 Robin H. Johnson
2016-05-16  6:55 Robin H. Johnson
2016-05-16  6:55 Robin H. Johnson
2016-02-14 20:53 Robin H. Johnson
2016-02-04  2:54 Stefan Behte
2016-01-23 22:49 Robin H. Johnson
2016-01-23 21:28 Robin H. Johnson
2016-01-23 21:28 Robin H. Johnson
2016-01-23 21:28 Robin H. Johnson
2016-01-23 21:28 Robin H. Johnson
2016-01-20 19:03 Richard Yao
2016-01-05 20:05 Robin H. Johnson
2016-01-05 20:02 Richard Farina
2015-12-30  4:38 Richard Farina
2015-08-29 20:53 Richard Yao
2015-08-20 16:14 Richard Farina
2015-08-20 16:06 Richard Farina
2015-08-20  2:26 Richard Farina
2015-08-19 19:34 Richard Farina
2015-08-18  3:35 Robin H. Johnson
2015-08-11 20:55 Richard Yao
2015-08-11 20:48 Richard Yao
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2015-08-11 18:37 Richard Farina
2014-07-15  7:27 Robin H. Johnson
2014-04-14  1:16 Robin H. Johnson
2014-03-16  0:41 Richard Yao
2014-03-16  0:26 Richard Yao
2014-03-16  0:26 Richard Yao
2014-03-16  0:26 Richard Yao
2014-02-27  4:47 Richard Yao
2014-02-27  4:47 Richard Yao
2013-06-09 13:57 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-09 13:57 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-06-09 13:57 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-09 13:48 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-06-09 13:57 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-09 13:48 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-06-09 13:57 Richard Yao
2013-06-09 13:57 Richard Yao
2013-06-09 13:48 Richard Yao
2013-06-09 13:48 Richard Yao
2013-06-09 13:48 Richard Yao
2013-06-06  3:36 [gentoo-commits] proj/genkernel:ryao " Richard Yao
2013-06-03 23:49 ` [gentoo-commits] proj/genkernel:master " Richard Yao
2013-04-29  8:56 Fabio Erculiani
2013-04-25  6:22 Fabio Erculiani
2013-04-25  6:22 Fabio Erculiani
2013-04-25  6:22 Fabio Erculiani
2013-04-25  6:22 Fabio Erculiani
2012-11-22 22:20 Richard Yao
2012-11-11 17:04 Richard Yao
2012-11-02 17:06 Robin H. Johnson
2012-10-13 18:05 Robin H. Johnson
2012-08-28 12:13 Peter Hjalmarsson
2012-08-12 23:22 Sebastian Pipping
2012-07-27 23:05 Sebastian Pipping
2012-07-21 17:44 Richard Yao
2012-07-20  3:02 Richard Yao
2012-07-20  0:39 Richard Yao
2012-07-19 20:41 Richard Yao
2012-07-19 20:12 Richard Yao
2012-07-17 20:25 Richard Yao
2012-07-17 20:20 Richard Yao
2012-07-17 20:06 Richard Yao
2012-07-17 20:06 Richard Yao
2012-07-17 20:03 Richard Yao
2012-07-17 20:03 Richard Yao
2012-06-11 17:35 Sebastian Pipping
2012-06-11 17:35 Sebastian Pipping
2012-05-02  2:51 Robin H. Johnson
2012-05-01 19:44 Robin H. Johnson
2012-05-01 19:44 Robin H. Johnson
2012-05-01 19:44 Robin H. Johnson
2012-04-12  4:21 Sebastian Pipping
2012-04-12  4:21 Sebastian Pipping
2012-04-12  4:21 Sebastian Pipping
2012-04-12  4:21 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-17  1:27 Sebastian Pipping
2012-03-12 19:39 Robin H. Johnson
2012-02-03 14:16 Sebastian Pipping
2012-01-08  2:29 Robin H. Johnson
2012-01-06  4:29 Robin H. Johnson
2011-09-22 22:44 Robin H. Johnson
2011-09-22  7:45 Robin H. Johnson
2011-06-08 15:52 Peter Hjalmarsson
2011-05-31 18:50 Sebastian Pipping
2011-05-12 14:40 Amadeusz Żołnowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1370785659.c6cd9c59f8cfb7993f79754cf4dbc1f21040c0f7.ryao@gentoo \
    --to=ryao@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox