Bug 697945
Summary: | clvmd crashes when attempting to create hundreds of VGs | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Corey Marthaler <cmarthal> | ||||
Component: | lvm2 | Assignee: | Milan Broz <mbroz> | ||||
Status: | CLOSED ERRATA | QA Contact: | Corey Marthaler <cmarthal> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 6.1 | CC: | agk, dwysocha, heinzm, jbrassow, mbroz, prajnoha, prockai, pvrabec, thornber, zkabelac | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | lvm2-2.02.87-1.el6 | Doc Type: | Bug Fix | ||||
Doc Text: |
clvmd was crashing when attempting to create a high number of volume groups at once. This was caused by the limit set by number of available file descriptors per process. While clvmd was creating pipes and the limit was reached under the pressure of high number of requests, clvmd did not return an error but continued to use unitialised pipes instead, ending up with a crash. To fix this, clvmd now returns an error message immediately if the pipe creation fails.
|
Story Points: | --- | ||||
Clone Of: | Environment: | ||||||
Last Closed: | 2011-12-06 16:56:58 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 743047 | ||||||
Attachments: |
|
Description
Corey Marthaler
2011-04-19 18:12:00 UTC
Core was generated by `clvmd -T30'. Program terminated with signal 6, Aborted. #0 0x000000331fc32a45 in raise () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install clusterlib-3.0.12-41.el6.x86_64 corosynclib-1.2.3-36.el6.x86_64 glibc-2.12-1.25.el6.x86_64 libgcc-4.4.5-6.el6.x86_64 libselinux-2.0.94-5.el6.x86_64 libsepol-2.0.41-3.el6.x86_64 libudev-147-2.35.el6.x86_64 (gdb) bt #0 0x000000331fc32a45 in raise () from /lib64/libc.so.6 #1 0x000000331fc34225 in abort () from /lib64/libc.so.6 #2 0x000000331fc6fdfb in __libc_message () from /lib64/libc.so.6 #3 0x000000331fc75716 in malloc_printerr () from /lib64/libc.so.6 #4 0x00000033260055df in dm_hash_destroy (t=0x6942d0) at datastruct/hash.c:132 #5 0x000000000040f90e in cmd_client_cleanup (client=0x1b37e90) at clvmd-command.c:343 #6 0x0000000000413c75 in process_work_item (arg=<value optimized out>) at clvmd.c:1903 #7 lvm_thread_fn (arg=<value optimized out>) at clvmd.c:1959 #8 0x00000033200077e1 in start_thread () from /lib64/libpthread.so.0 #9 0x000000331fce68ed in clone () from /lib64/libc.so.6 Created attachment 493269 [details]
coredump from taft-02
I hope it is fixed by properly return error if clvmd has no more file descriptors, should be part of 2.02.87 upstream. (I was not able to reproduce clvmd crash at least with patch but backtraces differs.) The crash no longer appears to exist in the latest lvm rpms. I now see countless lock messages: Can't get lock for c13. cluster request failed: Device or resource busy Is this the expected behavior now instead of crashing? 2.6.32-193.el6.x86_64 lvm2-2.02.87-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 lvm2-libs-2.02.87-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 lvm2-cluster-2.02.87-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 udev-147-2.37.el6 BUILT: Wed Aug 10 07:48:15 CDT 2011 device-mapper-1.02.66-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 device-mapper-libs-1.02.66-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 device-mapper-event-1.02.66-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 device-mapper-event-libs-1.02.66-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 cmirror-2.02.87-1.el6 BUILT: Fri Aug 12 06:11:57 CDT 2011 Yes. Busy message is sent when code is out of free descriptors (pipe() call fails). Maybe in the future we should handle it better but for now return busy is the only option. Marking verified based on comment #5 and comment #6. Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: clvmd was crashing when attempting to create a high number of volume groups at once. This was caused by the limit set by number of available file descriptors per process. While clvmd was creating pipes and the limit was reached under the pressure of high number of requests, clvmd did not return an error but continued to use unitialised pipes instead, ending up with a crash. To fix this, clvmd now returns an error message immediately if the pipe creation fails. 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-1522.html |