Previously, if clvmd received invalid request through its socket (for example an incomplete header sent), clvmd process could crash or stay in infinite loop.
Additional checks were added so such invalid packet now causes proper error reply to client and clvmd no longer crashes.
Description of problem:
clvmd hangs or crash if invalid request sent via /var/run/lvm/clvmd.sock
Version-Release number of selected component (if applicable):
lvm2-cluster-2.02.83-3.el6.x86_64
How reproducible:
always
Steps to Reproduce:
1. start clvmd
2. run perl -e 'print "\xff"x32' | socat STDIN UNIX-CONNECT:/var/run/lvm/clvmd.sock
Actual results:
clvmd crash or hangs and eat 100% of CPU
Expected results:
no hang or crash occurs
Additional info:
invalid request may send lvm in case of memory pressure or similar problem.
attached patch solved problem for me.
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:
Previously, if clvmd received invalid request through its socket (for example an incomplete header sent), clvmd process could crash or stay in infinite loop.
Additional checks were added so such invalid packet now causes proper error reply to client and clvmd no longer crashes.
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-2012-0962.html