- Issued:
- 2013-11-20
- Updated:
- 2013-11-20
RHBA-2013:1675 - udev bug fix and enhancement update
Synopsis
udev bug fix and enhancement update
Type/Severity
Bug Fix Advisory
Topic
Updated udev packages that fix several bugs and add one enhancement are now available for Red Hat Enterprise Linux 6.
Description
The udev packages implement a dynamic device-directory, providing only the devices present on the system. This dynamic directory runs in user space, dynamically creates and removes devices, provides consistent naming, and a user-space API. The udev packages replace the devfs package and provides better hot plug functionality.
This update fixes the following bugs:
-
Previously, for machines with relatively big RAM sizes and lots of disks, a number of udevd workers were running in parallel, maximizing CPU and I/O. This could cause udev events to time out due to hardware bottlenecks. With this update, the number of udevd workers is limited by the CPU count and significantly lower on machines with a big RAM size. Now, fewer udev workers running concurrently do not bottleneck easily and cause less or no timeouts. (BZ#833172, BZ#885978, BZ#918511)
-
Previously, the udev utility did not provide a symbolic link to SCM (Storage Class Memory) devices in the /dev/disk/by-path/ directory, which prevented SCM devices to be referenced by their paths. With this update, the path_id built-in command supports SCM devices and provides a symbolic link. Now, SCM devices can be referenced by their paths. (BZ#888647)
-
Prior to this update, the libudev.h header file did not have any extern "C" declaration, so it could not be used as-is in a C++ programs or applications. An extern "C" declaration has been added to the header file, thus fixing the bug. (BZ#909792)
-
Previously, the start_udev command called the "udevadm settle [options]" command and timed out after the default of 180 seconds. Nevertheless, some devices were not completely assembled and the boot process continued causing various failures. With this update, start_udev waits until udev has settled. As a result, all devices are assembled, and the boot process now continues without errors. (BZ#918511)
-
If a SCSI device was in use at the time the udev scsi_id helper utility was invoked, scsi_id did not return any properties of the device. Consequently, the properties of the SCSI device could not be processed in udev rules. With this update, scsi_id retries to open the device for a certain time span before it gives up. As a result, the properties of a SCSI device can be processed in udev rules, even though the device is in use for a short time. (BZ#920961)
-
For USB devices with InterfaceClass=0x08 and InterfaceSubClass=0x05, udev set the ID type as "floppy", which was not necessarily true. As a consequence, some tools could interpret the USB device as a floppy disk. Now, the ID type is set as "generic" for such USB devices, and tools interpret the USB devices correctly. (BZ#982902)
-
Previously, the libudev utility was referencing memory, which had been reallocated with its old address into the dev_enumerate_get_list_entry() function. However, calling this function could lead to a segmentation fault. With this update, libudev references the reallocated memory with offsets in udev_enumerate_get_list_entry(), thus fixing the bug. (BZ#998237)
In addition, this update adds the following enhancement:
- Previously, the amount of debug output could not be controlled and often
exceeded the available memory, if stored in the /dev/ temporary file. With this
update, the start_udev command with udevlog now call the udevd daemon with the
"-s" option, which redirects the output of udevd to the /dev/.udev/udev.log file
but does not set udevd in the debug mode. In addition, udevd now understands the
log priorities set in the rules file (OPTIONS+="log_priority=
"), so the user can set the numerical syslog priorities or their textual representations. There is also a new example rules file for logging: /lib/udev/rules.d/01-log-block.rules. To enable "info" logging for block devices, add "rd.log.block=info" to the kernel command line. (BZ#947067)
Users of udev are advised to upgrade to these updated packages, which fix these bugs and add this enhancement.
Solution
Before applying this update, make sure all previously released errata relevant to your system have been applied.
This update is available via the Red Hat Network. Details on how to use the Red Hat Network to apply this update are available at https://access.redhat.com/site/articles/11258
Affected Products
| Product | Version | Arch |
|---|---|---|
| Red Hat Enterprise Linux for Scientific Computing | 6 | x86_64 |
| Red Hat Enterprise Linux for Power, big endian | 6 | ppc64 |
| Red Hat Enterprise Linux for IBM z Systems | 6 | s390x |
| Red Hat Enterprise Linux Workstation | 6 | x86_64 |
| Red Hat Enterprise Linux Workstation | 6 | i386 |
| Red Hat Enterprise Linux Server | 6 | x86_64 |
| Red Hat Enterprise Linux Server | 6 | i386 |
| Red Hat Enterprise Linux Server from RHUI | 6 | x86_64 |
| Red Hat Enterprise Linux Server from RHUI | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | x86_64 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension | 6 | i386 |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support Extension (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Server - Extended Life Cycle Support (for IBM z Systems) | 6 | s390x |
| Red Hat Enterprise Linux Desktop | 6 | x86_64 |
| Red Hat Enterprise Linux Desktop | 6 | i386 |
Updated Packages
- udev-debuginfo-147-2.51.el6.i686.rpm
- udev-debuginfo-147-2.51.el6.s390.rpm
- libgudev1-devel-147-2.51.el6.x86_64.rpm
- udev-debuginfo-147-2.51.el6.x86_64.rpm
- udev-debuginfo-147-2.51.el6.ppc.rpm
- libudev-devel-147-2.51.el6.s390x.rpm
- libgudev1-devel-147-2.51.el6.ppc.rpm
- libgudev1-147-2.51.el6.x86_64.rpm
- libudev-devel-147-2.51.el6.i686.rpm
- libudev-147-2.51.el6.s390x.rpm
- udev-147-2.51.el6.src.rpm
- udev-147-2.51.el6.i686.rpm
- libgudev1-147-2.51.el6.ppc.rpm
- libgudev1-147-2.51.el6.s390x.rpm
- libudev-147-2.51.el6.ppc.rpm
- libgudev1-147-2.51.el6.i686.rpm
- libudev-147-2.51.el6.x86_64.rpm
- libudev-devel-147-2.51.el6.x86_64.rpm
- libgudev1-devel-147-2.51.el6.s390x.rpm
- libgudev1-147-2.51.el6.s390.rpm
- libudev-147-2.51.el6.i686.rpm
- libgudev1-147-2.51.el6.ppc64.rpm
- udev-147-2.51.el6.ppc64.rpm
- udev-debuginfo-147-2.51.el6.s390x.rpm
- libgudev1-devel-147-2.51.el6.s390.rpm
- libgudev1-devel-147-2.51.el6.i686.rpm
- libudev-devel-147-2.51.el6.s390.rpm
- libudev-devel-147-2.51.el6.ppc.rpm
- libgudev1-devel-147-2.51.el6.ppc64.rpm
- udev-debuginfo-147-2.51.el6.ppc64.rpm
- libudev-147-2.51.el6.ppc64.rpm
- libudev-devel-147-2.51.el6.ppc64.rpm
- udev-147-2.51.el6.x86_64.rpm
- libudev-147-2.51.el6.s390.rpm
- udev-147-2.51.el6.s390x.rpm
Fixes
(none)
CVEs
(none)
References
(none)
Additional information
- The Red Hat security contact is This content is not included.secalert@redhat.com. More contact details at https://access.redhat.com/security/team/contact/.
- Offline Security Data data is available for integration with other systems. See Offline Security Data API to get started.