mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrey Borzenkov <arvidjaar@mail.ru>
To: "J.A. Magallon" <jamagallon@able.es>
Cc: linux-kernel@vger.kernel.org, oblin@mandriva.com
Subject: Re: udev, PROGRAM and races...
Date: Wed, 5 Apr 2006 23:10:14 +0400	[thread overview]
Message-ID: <200604052310.14967.arvidjaar@mail.ru> (raw)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> This is done with rule like:
>
> SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*", \
> PROGRAM="/lib/udev/udev_cdrom_helper", SYMLINK+="%c"
>
> This helper tries to get the next free %d index to create cdrom%d, for
> example.
> The problem is that the launch of both helpers for hda and add seems to be
> done in parallel and the helper gets racy, so both cdroms get id 0, and the
> last that comes owns it:
>
> helper instance for hda        helper instance for hdd
> Does cdrom0 exist ? No
>                                Does cdrom0 exist ? No
> ln -sf hda cdrom0
>                                ln -sf hdd cdrom0
>
> ????
>

Do you have real example of race condition?

> Is there any way to serialize the calls to 'PROGRAM'. I tried something
> like:
>
> SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*",
> PROGRAM="/usr/bin/flock /sys/block /lib/udev/udev_cdrom_helper",
> SYMLINK+="%c"
>
> But looks a lot ugly.
>

Why? It is probably the simplest fix actually (assuming sysfs does support 
locking, I am not sure).

> Any standard way to do this ?

I never liked this automatic creation of symlinks, I believe this has to be 
done as part of device configuration (harddrake on distro you likely mean :)

> Can I still use %e, or is it really really deprecated ? this was easy:
>
> ENV{ID_CDROM_CD_RW}=="?*",  SYMLINK+="burner%e", MODE="0666",
> GROUP="cdwriter" ENV{ID_CDROM_DVD_R}=="?*",  SYMLINK+="burner%e",
> MODE="0666", GROUP="cdwriter"

Yes it is deprecated exactly for the same reason. What ensures uniqueness of 
%e?

regards

- -andrey

PS I believe it is more appropriate for distro-specific list actually.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFENBYWR6LMutpd94wRAk4qAJoDaSaLY4nDCgif0ybFdumc2Q7NzACgvo1n
U6fB7VUhQ70FG4nql8a6Nwk=
=fnir
-----END PGP SIGNATURE-----

             reply	other threads:[~2006-04-05 19:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-05 19:10 Andrey Borzenkov [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-04-04 22:22 J.A. Magallon

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=200604052310.14967.arvidjaar@mail.ru \
    --to=arvidjaar@mail.ru \
    --cc=jamagallon@able.es \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oblin@mandriva.com \
    /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

Powered by JetHome