The cpg service stores a copy of conn_info for distribution of multicast messages and configuration change messages. It is possible that cpg can access this conn_info structure after it has been freed. This patch locks the ipc connection into memory until lib_exit_fn has been called (and the conn_info structure has been deleted from the internal cpg distribution list).
Regards -steve
Index: exec/cpg.c =================================================================== --- exec/cpg.c (revision 1733) +++ exec/cpg.c (working copy) @@ -487,6 +487,7 @@ cpg_node_joinleave_send(gi, pi, MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN); list_del(&pi->list); } + openais_conn_refcount_dec (conn); return (0); } @@ -992,7 +993,7 @@ struct process_info *pi = (struct process_info *)openais_conn_private_data_get (conn); pi->conn = conn; -// openais_conn_info_refcnt_inc (conn); + openais_conn_refcount_inc (conn); log_printf(LOG_LEVEL_DEBUG, "lib_init_fn: conn=%p, pi=%p\n", conn, pi); return (0); }
_______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
