Description of problem: in the function send_reply_message, short writes are not handled. For example, if a buffer of 64k is written, but only 20k of the message could be sent, res will equal 20k with the MSG_DONTWAIT flag specified to the send call. There may be other functions which also don't handle this possible condition in both read and writes of the sockets in cman. Version-Release number of selected component (if applicable): current cvs cman -12 How reproducible: no test case to test, but the code is wrong via inspection. If it were to fail, there would be bizarre results which we would not easily be able to debug in the field. the aisexec ipc code handles this properly so you might have a look there for examples. Steps to Reproduce: 1. 2. 3. Actual results: short writes not handled Expected results: short writes should be handled in a nonblocking way Additional info:
yeah, that's a hangover from when cman messages couldn't be larger than 1500 bytes (less the PIPE_BUF) so it wasn't a problem.
Checking in daemon.c; /cvs/cluster/cluster/cman/daemon/daemon.c,v <-- daemon.c new revision: 1.32; previous revision: 1.31 done
Fixing Product Name. Cluster Suite was merged into Red Hat Enterpise Linux for 5.0. In addition dlm, fence and ccs were merged into the cman package, so bugzilla should reflect package name where those utilities are located.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0575.html