mod_axis2 fails to call svc_skeleton_free
-----------------------------------------

                 Key: AXIS2C-995
                 URL: https://issues.apache.org/jira/browse/AXIS2C-995
             Project: Axis2-C
          Issue Type: Bug
          Components: core/transport
    Affects Versions: 1.2.0
         Environment: solaris 10 x86, apache 2.2.4
            Reporter: Ben Wyckoff


mod_axis2 calls AXIS2_SVC_SKELETON_INIT but never calls AXIS2_SVC_SKELETON_FREE 
(or the equivalent), which leaves resources allocated at init time dangling. 
The axis2_hhtp_server does properly call free, allowing the service to properly 
clean up after itself.

This issue was submitted to the axis2-c users list, and Dumindu Pallewela 
replied with the following patch.

Index: mod_axis2.c
===================================================================
--- mod_axis2.c (revision 629362)
+++ mod_axis2.c (working copy)
@@ -425,6 +425,19 @@
 #endif
 }
 
+typedef struct worker_cleanup_data
+{
+    const axutil_env_t * env;
+    axis2_apache2_worker_t * worker;
+} worker_cleanup_data_t;
+
+static apr_status_t worker_cleanup(void *data)
+{
+    worker_cleanup_data_t *d = (worker_cleanup_data_t *) data;
+    axis2_apache2_worker_free(d->worker, d->env);
+    return APR_SUCCESS;
+}
+
 static int axis2_post_config(apr_pool_t *pconf, apr_pool_t *plog,
                                                                 apr_pool_t 
*ptemp, server_rec *svr_rec)
 {
@@ -592,6 +605,14 @@
                      "[Axis2] Error creating mod_axis2 apache2 worker");
         exit(APEXIT_CHILDFATAL);
     }
+    else
+    {
+        worker_cleanup_data_t *data = apr_palloc(pconf, 
sizeof(worker_cleanup_data_t));
+        data->env = axutil_env;
+        data->worker = axis2_worker;
+        apr_pool_cleanup_register(pconf, data, worker_cleanup, 
apr_pool_cleanup_null);
+    }
+
        return OK;
 }
 



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to