From: NeilBrown <neilb@suse.de>
To: Martin Wilck <mwilck@arcor.de>
Cc: linux-raid@vger.kernel.org
Subject: Re: DDF test fails if default udev rules are active
Date: Wed, 24 Apr 2013 16:13:48 +1000 [thread overview]
Message-ID: <20130424161348.1f7e3abc@notabene.brown> (raw)
In-Reply-To: <51535A25.1040501@arcor.de>
[-- Attachment #1: Type: text/plain, Size: 2346 bytes --]
On Wed, 27 Mar 2013 21:44:21 +0100 Martin Wilck <mwilck@arcor.de> wrote:
> Hi Neil,
>
> with my latest patch set, the DDF test case (10-ddf-create) succeeds
> reliably for me, with one caveat: It works only if I disable the rule
> that runs "mdadm -I" on a newly discovered container. On my system
> (Centos 6.3) it is in /lib/udev/65-md-incremental.rules, and the rule is
>
> SUBSYSTEM="block", ACTION="add|change", KERNEL="md*", \
> ENV{MD_LEVEL}=="container", RUN+="/sbin/mdadm -I $env{DEVNAME}"
>
> The reason is that the DDF test case runs mdadm -Asc after writing the
> conf file defining the container and 3 arrays.
>
> mdadm -Asc will first create the container. When it starts tries to
> create the member arrays, these have already been started by the udev
> rule above, causing the assembly to fail with the error message "member
> /dev/md127/1 in /dev/md127 is already assembled".
>
> I have done my testing with the above udev rule commented out, and all
> goes fine. But I am not sure if "mdadm -Asc /var/tmp/mdadm.conf" failing
> indicates a problem with the DDF code, or if it's really just a problem
> with the test case. Personally, I'd rather have a test case that
> succeeds by default on a system with standard configuration (which means
> the above udev rule should be active).
>
> What do you think?
> Martin
Hi Martin,
I think this is a real issue that has occasionally annoyed me a bit but
never enough to make me seriously address it - so thanks for raising it.
I generally would like the tests to run without any interference from udev,
though I certainly see the value of testing in a "standard config" context
too.
Fortunately it appears to be easy to address.
udevadm control --stop-exec-queue
will pause udev, and
udevadm control --start-exec-queue
will cause udev to resume.
So I suggest that we change the 'test' script to run:
udevadm settle; udevadm control --stop-exec-queue
before running each test script, and
udevadm control --start-exec-queue
after the script.
Then if a script wants to run in "standard" context, it could simply put
udevadm control --start-exec-queue
at the top. The default would be to disable udev which is what most scripts
expect.
Can you try that?
Thanks,
NeilBrown
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2013-04-24 6:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-27 20:44 DDF test fails if default udev rules are active Martin Wilck
2013-04-24 6:13 ` NeilBrown [this message]
2013-08-06 21:44 ` Martin Wilck
2013-08-08 1:10 ` NeilBrown
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=20130424161348.1f7e3abc@notabene.brown \
--to=neilb@suse.de \
--cc=linux-raid@vger.kernel.org \
--cc=mwilck@arcor.de \
/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;
as well as URLs for NNTP newsgroup(s).