[Openais] [Patch] [BSD] Fix EOF handling in coroipcs.c:req_setup_recv()

Steven Dake sdake at redhat.com
Mon Jun 29 16:14:40 PDT 2009


Patch looks good for commit

regards
-steve

On Mon, 2009-06-29 at 09:35 +0200, Jérôme Flesch wrote:
> Hello,
> 
> Here is a patch to fix req_setup_recv() return value on BSD systems.
> On BSD systems, when recvmsg() returns 0 (ie EOF), req_setup_recv() must 
> return 0 instead of -1, so coroipcs_handler_dispatch() doesn't try to 
> send back a message on the same socket (see 
> coroipcs.c:coroipcs_handler_dispatch:l1279). Otherwise, Corosync gets a 
> SIGPIPE and dies.
> plain text document attachment (fix-bsd-coroipcs-req-setup-recv.patch)
> diff --git a/exec/coroipcs.c b/exec/coroipcs.c
> index 96c43dc..e247d11 100644
> --- exec/coroipcs.c
> +++ exec/coroipcs.c
> @@ -661,8 +661,10 @@ retry_recv:
>  		 * EOF is detected when recvmsg return 0.
>  		 */
>  		ipc_disconnect (conn_info);
> -#endif
> +		return 0;
> +#else
>  		return (-1);
> +#endif
>  	}
>  	conn_info->setup_bytes_read += res;
>  
> _______________________________________________
> Openais mailing list
> Openais at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/openais



More information about the Openais mailing list