Hi Damitha, With HTTPD we are now creating the local pool (actually request pool) with our own apr_allocator. See the following two function calls at the beginning of the mod_axis2.c axis2_handler function.
apr_allocator_create(&local_allocator); apr_pool_create_ex(&local_pool, NULL, NULL, local_allocator); The two NULL values passing are the parent pool and the callback function inorder to handle pool creation failure. At the end of this axis2_handle function we free both apr_pool and the apr_allocator using the following two calls. apr_pool_destroy(local_pool); apr_allocator_destroy(local_allocator); What makes sandesha to crash is the call to apr_allocator_destroy. But that call is necessary when handling large size of requests frequently. (specially quite large attachments). Because sandesha starts threads and since these threads remains after the request the crashing happens. The solution for this is we need to keep a pointer to this apr_allocator_t * (here local_allocator) and a ref count to keep the number of references. Inside Sandesha sender thread we can increment the ref count. This destroy function calls only if the ref count is zero. we can keep the ref_count and the pointer to the apr_allocator inside axutil_allocator. Then checking for the ref count and calls to destroy functions are wrapped in a macro called AXIS2_POOL_ALLOCATOR_DESTROY which is similar to AXIS2_FREE. Both Sandesha and mod_axis2 calls this macro instead of calling destroy functions straightway as we are doing now. Thanks, -Manjula. On Sat, 2008-04-19 at 08:19 +0530, Damitha Kumarage wrote: > Manjula Peiris wrote: > > >On Fri, 2008-04-18 at 11:40 +0530, Damitha Kumarage wrote: > > > > > >>Axis2C-1079 is still open. That means Sandesha2/C dual channel does not > >>work with Apache2. > >>This problem started due to a change to Axis2/C code. We cannot release > >>without solving this. > >> > >> > > > >This may fails because now we are freeing the apr local pool. I did fix > >this locally in my machine but it needs more testing. Since it is now so > >close to the release I will commit the stuff after the release. > > > > > +1 for doing this after 1.3.1 release. Could you please explain about > the changes involved so that I too can have a look at it. > thanks > Damitha > > >Thanks, > >-Manjula. > > > > > > > >>thanks > >>Damitha > >> > >>Dinesh Premalal wrote: > >> > >> > >> > >>>Hi All, > >>> > >>> I have packed and uploaded Apache Axis2/C 1.3.1 RC2 here > >>> [1]. Please test and send your feedback. > >>> > >>>thanks, > >>>Dinesh > >>> > >>>1.http://people.apache.org/~dinesh/release/Axis2C-1.3.1-RC2/ > >>> > >>> > >>> > >>> > >>> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
