Red Hat Bugzilla – Bug 206093
cman doesn't handle short writes (possibly also reads) in socket IO
Last modified: 2016-04-26 11:28:46 EDT
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
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:
short writes not handled
short writes should be handled in a nonblocking way
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
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
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.