| Summary: | libvirtd segfaults on startup inside udev_enumerate_get_list_entry() | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Marco d'Itri <md> |
| Component: | udev | Assignee: | Harald Hoyer <harald> |
| Status: | CLOSED ERRATA | QA Contact: | qe-baseos-daemons |
| Severity: | high | Docs Contact: | |
| Priority: | urgent | ||
| Version: | 6.0 | CC: | azelinka, cww, dallan, danken, eblake, jscotka, pknirsch, yoyzhang |
| Target Milestone: | rc | Keywords: | ZStream |
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-12-06 16:26:56 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | |||
| Bug Blocks: | 737469, 743047 | ||
|
Description
Marco d'Itri
2011-04-14 14:26:50 UTC
Please do not reboot the machine until you've tried the following, as we've seen a similar crash that could not be reproduced after the host was rebooted. (BZ 664962) Can you enable debugging of node_device_udev and reproduce and upload the libvirtd.log? The commands to enable udev debugging are: service libvirtd stop export LIBVIRT_DEBUG=3 export LIBVIRT_LOG_OUTPUTS="1:file:/var/log/libvirt_debug.log" export LIBVIRT_LOG_FILTERS="1:udev" /sbin/libvirtd See also: http://libvirt.org/logging.html This is the whole content of the log file (I redacted the serial numbers):
02:02:39.196: debug : udevNodeRegister:1727 : Registering udev node device backend
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'product_name' value 'ProLiant BL685c G7' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'sys_vendor' value 'HP' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'product_version' value '' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'product_serial' value '(elided) ' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'bios_vendor' value 'HP' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'bios_version' value 'A20' for device with sysname 'id'
02:02:39.202: debug : udevGetDeviceSysfsAttr:225 : Found sysfs attribute 'bios_date' value '09/30/2010' for device with sysname 'id'
And these are the attributes involved:
root@cs10-a:/sys/devices/virtual/dmi/id# head *
==> bios_date <==
09/30/2010
==> bios_vendor <==
HP
==> bios_version <==
A20
==> chassis_asset_tag <==
==> chassis_serial <==
(elided)
==> chassis_type <==
23
==> chassis_vendor <==
HP
==> chassis_version <==
==> modalias <==
dmi:bvnHP:bvrA20:bd09/30/2010:svnHP:pnProLiantBL685cG7:pvr:cvnHP:ct23:cvr:
==> power <==
head: error reading `power': Is a directory
==> product_name <==
ProLiant BL685c G7
==> product_serial <==
(elided)
==> product_uuid <==
(elided)
==> product_version <==
==> subsystem <==
head: error reading `subsystem': Is a directory
==> sys_vendor <==
HP
==> uevent <==
MODALIAS=dmi:bvnHP:bvrA20:bd09/30/2010:svnHP:pnProLiantBL685cG7:pvr:cvnHP:ct23:cvr:
The segfault is happening when traversing the list of devices internal to udev, and the debug log doesn't indicate any failures of parsing your devices or anything unusual in your configuration. Would you be willing to provide a core dump? Non-publicly would be fine. I mailed it to you. Thanks. As I mentioned earlier, I think rebooting the machine will fix the problem, so if you need to, please do and let us know the result. Confirmed: libvirtd works again after a reboot. Can you reproduce this? And could you try this patch here? http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=c54b43e2c233e724f840c4f6a0a81bdd549e40bb I could reproduce the bug at will before rebooting, but not anymore after rebooting the system. It could be the same issue since these systems have over 2500 devices+partitions. Confirmed, Harald's patch fixes the bug. Now libvirtd segfaulted on me two times at boot time, but I have always been able to restart it after the system boot. Marco, do you mean that even with Harald's patch, you're seeing a segfault? Yes, but now it happened only at boot time and again not every time. But I have limited data points since I cannot reboot these servers at will. At least with Harald's patch I can restart libvirtd after the boot. Actually, I am not so sure right now that the problem is still present since I noticed that I did not install the new libudev package on some servers. Let's wait a few days and sorry for the noise. False alarm, I can confirm that the patch fully fixes the bug. Thanks for the update, Marco! Regards, Phil *** Bug 664962 has been marked as a duplicate of this bug. *** Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1649.html |