This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
rgmanager: master - rgmanager: Fix leaked context on queue fail
- From: Lon Hohberger <lon at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Mon, 22 Jun 2009 16:54:41 +0000 (UTC)
- Subject: rgmanager: master - rgmanager: Fix leaked context on queue fail
Gitweb: http://git.fedorahosted.org/git/rgmanager.git?p=rgmanager.git;a=commitdiff;h=a9ff22b81d8f37d7b6a9d52944dbf5da7c978cd8
Commit: a9ff22b81d8f37d7b6a9d52944dbf5da7c978cd8
Parent: d01fecb3d36e4539d6bef1d068c182fcfc113ff6
Author: Lon Hohberger <lhh@redhat.com>
AuthorDate: Fri Jun 19 17:02:53 2009 -0400
Committer: Lon Hohberger <lhh@redhat.com>
CommitterDate: Mon Jun 22 12:52:09 2009 -0400
rgmanager: Fix leaked context on queue fail
Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
rgmanager/src/daemons/main.c | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/rgmanager/src/daemons/main.c b/rgmanager/src/daemons/main.c
index 4082743..8f9fc2f 100644
--- a/rgmanager/src/daemons/main.c
+++ b/rgmanager/src/daemons/main.c
@@ -458,11 +458,20 @@ dispatch_msg(msgctx_t *ctx, int nodeid, int need_close)
/* Distributed processing and/or request is from master node
-- Queue request */
- rt_enqueue_request(msg_sm->sm_data.d_svcName,
- msg_sm->sm_data.d_action,
- ctx, 0, msg_sm->sm_data.d_svcOwner,
- msg_sm->sm_hdr.gh_arg1,
- msg_sm->sm_hdr.gh_arg2);
+ if (rt_enqueue_request(msg_sm->sm_data.d_svcName,
+ msg_sm->sm_data.d_action,
+ ctx, 0, msg_sm->sm_data.d_svcOwner,
+ msg_sm->sm_hdr.gh_arg1,
+ msg_sm->sm_hdr.gh_arg2) != 0) {
+
+ /* Clean up this context if we fail to
+ * queue the request. */
+ send_ret(ctx, msg_sm->sm_data.d_svcName,
+ RG_EAGAIN, msg_sm->sm_data.d_action, 0);
+ need_close = 1;
+ ret = 0;
+ goto out;
+ }
return 0;
case RG_EVENT: