From: Olaf Hering <olh@suse.de>
To: linux-hotplug@vger.kernel.org
Subject: Re: inconsistent renaming of devices
Date: Sun, 08 Feb 2004 14:13:23 +0000 [thread overview]
Message-ID: <20040208141323.GA24211@suse.de> (raw)
In-Reply-To: <marc-linux-hotplug-107165372413670@msgid-missing>
On Thu, Feb 05, Greg KH wrote:
> On Thu, Feb 05, 2004 at 10:56:45AM +0100, Olaf Hering wrote:
> > On Thu, Feb 05, Greg KH wrote:
> >
> > > On Thu, Feb 05, 2004 at 11:58:53AM +0530, Surekha.PC wrote:
> > > >
> > > > Hi,
> > > >
> > > > Has this problem been fixed in udev? I installed the latest udev-016
> > > > package and device naming inconsistenty persists.
> > >
> > > Yes, it should be fixed.
> > >
> > > What do you see happening in your system?
> > > If you build with DEBUG=true USE_LOG=true what does the debug syslog
> > > show for these devices?
> >
> > It is probalby the same sort of race that I reported earlier this week.
>
> Do you mean the permisions one? That's all I remember seeing. If not,
> please let me know.
No, that was about that fact that block (and scsi) events run much
earlier than expected. The properties below /block/sda/device/ and
/sys/bus/*/devices/$bus_id appear to late, the result is that the
BUS="scsi" rule doesnt match and it falls through to the BUS="usb" rule.
I have to add sleep 3 in case of my USB stick.
It would make sense to run the /block/sda event just before the
/block/sda/sda1 event (if there is a partition table). sda1 has always
all properties in /block/sda/sda1/../device/
sysfs_path_is_link() does a stat(/sys/bus/*/devices/$bus_id) and this does
not exist.
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/scsi/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/ieee1394/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/usb/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/ide/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/macio/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/pci/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/of_platform/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: sysfs_path_is_link: stat(/sys/bus/platform/devices/15:0:0:0) failed
Feb 8 14:36:33 ibook udev[12643]: get_sysfs_device: timed out waiting to find the device bus, continuing on anyway
Feb 8 14:36:33 ibook udev[12643]: namedev_name_device: sysfs_device->path='/sys/devices/pci0001:01/0001:01:18.0/usb1/1-1/1-1:1.0/host15/15:0:0:0'
Feb 8 14:36:33 ibook udev[12643]: namedev_name_device: sysfs_device->bus_id='15:0:0:0'
Feb 8 14:36:33 ibook udev[12643]: namedev_name_device: sysfs_device->bus=''
Feb 8 14:36:33 ibook udev[12643]: wait_for_device_to_initialize: did not find bus type '' on list of bus_id_files, contact greg@kroah.com
Feb 8 14:36:33 ibook udev[12643]: namedev_name_device: kernel_number=''
Feb 8 14:36:33 ibook udev[12643]: namedev_name_device: process rule
Feb 8 14:36:33 ibook udev[12643]: match_rule: check for BUS dev->bus='scsi' sysfs_device->bus=''
Feb 8 14:36:33 ibook udev[12643]: match_rule: BUS is not matching
Now, this little hack, and the result looks much better.
--- udev-glibc/libsysfs/sysfs_device.c 2004-01-17 02:42:37.000000000 +0100
+++ udev-glibc-debug/libsysfs/sysfs_device.c 2004-02-08 15:06:10.738209173 +0100
@@ -34,6 +34,7 @@ int sysfs_get_device_bus(struct sysfs_de
unsigned char subsys[SYSFS_NAME_LEN], path[SYSFS_PATH_MAX];
unsigned char target[SYSFS_PATH_MAX], *bus = NULL, *c = NULL;
struct dlist *buslist = NULL;
+ int retries;
if (dev = NULL) {
errno = EINVAL;
@@ -44,6 +45,8 @@ int sysfs_get_device_bus(struct sysfs_de
strcat(subsys, "/");
strcpy(subsys, SYSFS_BUS_NAME); /* subsys = /bus */
buslist = sysfs_open_subsystem_list(subsys);
+ retries = 5;
+retry:
if (buslist != NULL) {
dlist_for_each_data(buslist, bus, char) {
memset(path, 0, SYSFS_PATH_MAX);
@@ -79,6 +82,12 @@ int sysfs_get_device_bus(struct sysfs_de
}
}
}
+ if(--retries) {
+ dprintf("sleep one second for %s\n", dev->bus_id);
+ sleep(1);
+ dprintf("retries left: %d\n", retries);
+ goto retry;
+ }
sysfs_close_list(buslist);
}
return -1;
Feb 8 15:06:46 ibook udev[16851]: main: version 016_bk
Feb 8 15:06:46 ibook udev[16851]: udev_hotplug: looking at '/block/sda'
Feb 8 15:06:46 ibook udev[16851]: get_dirs: sysfs_path='/sys'
Feb 8 15:06:46 ibook udev[16851]: parse_config_file: reading '/etc/udev/udev.conf' as config file
Feb 8 15:06:46 ibook udev[16851]: namedev_init_rules: reading '/etc/udev/udev.rules' as rules file
Feb 8 15:06:46 ibook udev[16851]: namedev_init_permissions: reading '/etc/udev/udev.permissions' as permissions file
Feb 8 15:06:46 ibook udev[16851]: sleep_for_dev: looking for '/sys/block/sda/dev'
Feb 8 15:06:46 ibook udev[16851]: get_class_dev: looking at '/sys/block/sda'
Feb 8 15:06:46 ibook udev[16851]: get_class_dev: class_dev->name='sda'
Feb 8 15:06:46 ibook udev[16851]: get_major_minor: dev='8:0 '
Feb 8 15:06:46 ibook udev[16851]: get_major_minor: found major=8, minor=0
Feb 8 15:06:46 ibook udev[16851]: get_blockdev_parent: sda not a partition
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/scsi/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ieee1394/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/usb/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ide/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/macio/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/pci/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/of_platform/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/platform/devices/23:0:0:0) failed
Feb 8 15:06:46 ibook udev[16851]: sysfs_get_device_bus: sleep one second for 23:0:0:0
Feb 8 15:06:47 ibook udev[16851]: sysfs_get_device_bus: retries left: 4
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/scsi/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ieee1394/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/usb/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ide/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/macio/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/pci/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/of_platform/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/platform/devices/23:0:0:0) failed
Feb 8 15:06:47 ibook udev[16851]: sysfs_get_device_bus: sleep one second for 23:0:0:0
Feb 8 15:06:48 ibook udev[16851]: sysfs_get_device_bus: retries left: 3
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/scsi/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ieee1394/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/usb/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/ide/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/macio/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/pci/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/of_platform/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_path_is_link: stat(/sys/bus/platform/devices/23:0:0:0) failed
Feb 8 15:06:48 ibook udev[16851]: sysfs_get_device_bus: sleep one second for 23:0:0:0
Feb 8 15:06:49 ibook udev[16851]: sysfs_get_device_bus: retries left: 2
Feb 8 15:06:49 ibook udev[16851]: get_sysfs_device: device 23:0:0:0 is registered with bus 'scsi'
Feb 8 15:06:49 ibook udev[16851]: namedev_name_device: sysfs_device->path='/sys/devices/pci0001:01/0001:01:18.0/usb1/1-1/1-1:1.0/host23/23:0:0:0'
Feb 8 15:06:49 ibook udev[16851]: namedev_name_device: sysfs_device->bus_id='23:0:0:0'
Feb 8 15:06:49 ibook udev[16851]: namedev_name_device: sysfs_device->bus='scsi'
Feb 8 15:06:49 ibook udev[16851]: wait_for_device_to_initialize: looking for file 'vendor' on bus 'scsi'
Feb 8 15:06:49 ibook udev[16851]: namedev_name_device: kernel_number=''
Feb 8 15:06:49 ibook udev[16851]: namedev_name_device: process rule
Feb 8 15:06:49 ibook udev[16851]: match_rule: check for BUS dev->bus='scsi' sysfs_device->bus='scsi'
Feb 8 15:06:49 ibook udev[16851]: match_rule: BUS matches
> I still need to try to track down that permissions problem...
Could be a dietlibc problem. Havent look closer yet.
--
USB is for mice, FireWire is for men!
sUse lINUX ag, n√úRNBERG
-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next prev parent reply other threads:[~2004-02-08 14:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-17 9:33 inconsistent renaming of devices Martin Lorenz
2003-12-17 18:13 ` Greg KH
2004-02-05 6:40 ` Surekha.PC
2004-02-05 8:56 ` Greg KH
2004-02-05 9:56 ` Olaf Hering
2004-02-05 10:11 ` Surekha.PC
2004-02-05 23:49 ` Greg KH
2004-02-05 23:51 ` Greg KH
2004-02-06 0:18 ` Kay Sievers
2004-02-06 6:34 ` Surekha.PC
2004-02-06 9:18 ` 'Kay Sievers'
2004-02-06 11:29 ` Surekha.PC
2004-02-08 14:13 ` Olaf Hering [this message]
2004-02-09 5:51 ` Ananth N Mavinakayanahalli
2004-02-09 6:31 ` Olaf Hering
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=20040208141323.GA24211@suse.de \
--to=olh@suse.de \
--cc=linux-hotplug@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).