I'm forwarding on behalf of my collegue (as his mails are not reaching
the list)
-Madhu
>-Original Message-
>From: CHOU,TAIR-SHIAN (HP-Cupertino,ex1)
>[mailto:[EMAIL PROTECTED]
>Sent: Friday, June 11, 2004 7:04 PM
>To: Mathihalli, Madhusudan
>Subject: FW: util_ldap [Bug 29217] - Remove references to
>calloc()and free()
>
>
>
>-Original Message-
>From: Tair-Shian Chou [mailto:[EMAIL PROTECTED]
>Sent: Friday, June 11, 2004 6:38 PM
>To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'
>Subject: RE: util_ldap [Bug 29217] - Remove references to
>calloc()and free()
>
>
>Brad Nicholes wrote:
>
>>
>> In fact, I don't think that these are shared locks at all
>>
>> #define LDAP_CACHE_LOCK_CREATE(p) \
>> if (!st->util_ldap_cache_lock)
>> apr_thread_rwlock_create(&st->util_ldap_cache_lock, st->pool)
>>
>> which means that in the shared memory cache, it is highly
>> likely that multiple processes could be altering the cache at
>> the same time. True?
>> Since NetWare is multi-threaded only, we never see this problem.
>>
>
>This is true. This creates a process-wide mutex, which can
>only synchronize threads within the same process so multiple
>processes can alternate the ldap cache at the same time. This
>was causing segmentation fault on HP-UX. We have fixed this by
>creating a global mutex lock in util_ldap_cache_init();
>
>if (!st->util_ldap_cache_lock) {
>lock_file = apr_psprintf(pool,"%s.lock",st->cache_file);
>result =
>apr_global_mutex_create(&st->util_ldap_cache_lock,lock_file,APR
_LOCK_PROC_PTHREAD,pool);
>if (result != APR_SUCCESS) {
> return result;
>}
>
>We used mutex instead of rwlock because there is no apr*
>function to create a global rwlock.
>
>This change fixed the segmentation fault and other
>synchronization problems.
>
>Chou
>