axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Supun Kamburugamuva (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2C-995) mod_axis2 fails to call svc_skeleton_free
Date Sat, 28 Jun 2008 05:33:45 GMT

     [ https://issues.apache.org/jira/browse/AXIS2C-995?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Supun Kamburugamuva updated AXIS2C-995:
---------------------------------------

    Attachment: mod_axis2_shut_down.patch

Here I have attached a patch which will allow us to call the axis2_svc_skeleton_free when
Apache is shutting down. I have tested this on my machine and it works fine. I really appreciate
if someone with more experience in this area have a look at the patch before I commit it.

> 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
>            Assignee: Supun Kamburugamuva
>         Attachments: mod_axis2_shut_down.patch
>
>
> 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: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message