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]