You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Sander Striker <st...@apache.org> on 2002/05/30 01:28:40 UTC
Pools problems, fixed.
Hi,
A bunch of pools commits to APR later...
Seriously, I think I have it fixed now. For both with APR_POOL_DEBUG
and without. Please update your APR when compiling the HEAD of
Subversion.
Thanks,
Sander
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: Pools problems, fixed.
Posted by Branko Čibej <br...@xbc.nu>.
Sander Striker wrote:
>>From: Branko Cibej [mailto:brane@xbc.nu]
>>Sent: 30 May 2002 21:51
>>
>>
>
>
>
>>Sander Striker wrote:
>>
>>
>>
>>>Hi,
>>>
>>>A bunch of pools commits to APR later...
>>>
>>>Seriously, I think I have it fixed now. For both with APR_POOL_DEBUG
>>>and without. Please update your APR when compiling the HEAD of
>>>Subversion.
>>>
>>>Thanks,
>>>
>>>Sander
>>>
>>>
>>>
>>>
>>Well, the Windows build compiles without APR changes now, but the tests
>>still crash, albeit in a different place now (in apr_allocator_free).
>>This happens in both the release and debug builds, so it can't be
>>related to the pools debugging code.
>>
>>Unfortunately I don't have time to track this down. If somebody cares to
>>try, I'll cheer you on (a good place to start would be stringtest 13).
>>Otherwise I'll have a go on Monday.
>>
>>
>
>Ah, I know what it is.
>We need to register a simple cleanup:
>
>static apr_status_t svn_allocator_reset_mutex(void *allocator)
>{
> apr_allocator_mutex_set(allocator, NULL);
> return APR_SUCCESS;
>}
>
>This needs to be registered in svn_pool_create() in the block
>where there is no parent, and in svn_pool_clear() in the _p_p
>block.
>
>That will fix things (destroy currently kills the mutex, but apr_allocator_free
>still uses it after that... NULL'ing the mutex will help).
>
>I'll see if I can squeeze that in tomorrow. Others are ofcourse
>free to incorporate it.
>
>Sander
>
>
>
Like this (tests running, seems to work)?
Index: ./svn_error.c
===================================================================
--- ./svn_error.c
+++ ./svn_error.c 2002-05-30 22:19:35.000000000 +0200
@@ -400,6 +400,17 @@
/*-----------------------------------------------------------------*/
+
+/* Cleanup function for pools.. */
+
+static apr_status_t
+allocator_reset_mutex (void *allocator)
+{
+ apr_allocator_mutex_set(allocator, NULL);
+ return APR_SUCCESS;
+}
+
+
/*
Macros to make the preprocessor logic less confusing.
We need to always have svn_pool_xxx aswell as
@@ -459,6 +470,8 @@
abort_on_pool_failure (apr_err);
apr_allocator_mutex_set (allocator, mutex);
+ apr_pool_cleanup_register (ret_pool, allocator,
+ allocator_reset_mutex, NULL);
}
#endif /* APR_HAS_THREADS */
@@ -517,6 +530,8 @@
apr_allocator_mutex_set (allocator, NULL);
(void) apr_thread_mutex_create (&mutex, APR_THREAD_MUTEX_DEFAULT, pool);
apr_allocator_mutex_set (allocator, mutex);
+ apr_pool_cleanup_register (pool, allocator,
+ allocator_reset_mutex, NULL);
#endif /* APR_HAS_THREADS */
/* Here we have a problematic situation. We cleared the pool P,
--
Brane Čibej <br...@xbc.nu> http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
RE: Pools problems, fixed.
Posted by Sander Striker <st...@apache.org>.
> From: Branko Cibej [mailto:brane@xbc.nu]
> Sent: 30 May 2002 21:51
> Sander Striker wrote:
>
> >Hi,
> >
> >A bunch of pools commits to APR later...
> >
> >Seriously, I think I have it fixed now. For both with APR_POOL_DEBUG
> >and without. Please update your APR when compiling the HEAD of
> >Subversion.
> >
> >Thanks,
> >
> >Sander
> >
> >
> Well, the Windows build compiles without APR changes now, but the tests
> still crash, albeit in a different place now (in apr_allocator_free).
> This happens in both the release and debug builds, so it can't be
> related to the pools debugging code.
>
> Unfortunately I don't have time to track this down. If somebody cares to
> try, I'll cheer you on (a good place to start would be stringtest 13).
> Otherwise I'll have a go on Monday.
Ah, I know what it is.
We need to register a simple cleanup:
static apr_status_t svn_allocator_reset_mutex(void *allocator)
{
apr_allocator_mutex_set(allocator, NULL);
return APR_SUCCESS;
}
This needs to be registered in svn_pool_create() in the block
where there is no parent, and in svn_pool_clear() in the _p_p
block.
That will fix things (destroy currently kills the mutex, but apr_allocator_free
still uses it after that... NULL'ing the mutex will help).
I'll see if I can squeeze that in tomorrow. Others are ofcourse
free to incorporate it.
Sander
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Re: Pools problems, fixed.
Posted by Branko Čibej <br...@xbc.nu>.
Sander Striker wrote:
>Hi,
>
>A bunch of pools commits to APR later...
>
>Seriously, I think I have it fixed now. For both with APR_POOL_DEBUG
>and without. Please update your APR when compiling the HEAD of
>Subversion.
>
>Thanks,
>
>Sander
>
>
Well, the Windows build compiles without APR changes now, but the tests
still crash, albeit in a different place now (in apr_allocator_free).
This happens in both the release and debug builds, so it can't be
related to the pools debugging code.
Unfortunately I don't have time to track this down. If somebody cares to
try, I'll cheer you on (a good place to start would be stringtest 13).
Otherwise I'll have a go on Monday.
--
Brane Čibej <br...@xbc.nu> http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org