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.
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;
 

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to