[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: svn commit: r33014 - trunk/subversion/libsvn_subr

From: Bert Huijben <bert_at_qqmail.nl>
Date: Thu, 11 Sep 2008 12:28:19 +0200

> -----Original Message-----
> From: zhakov_at_tigris.org [mailto:zhakov_at_tigris.org]
> Sent: woensdag 10 september 2008 19:24
> To: svn_at_subversion.tigris.org
> Subject: svn commit: r33014 - trunk/subversion/libsvn_subr
>
> Author: zhakov
> Date: Wed Sep 10 10:24:19 2008
> New Revision: 33014
>
> Log:
> Load crypt32.dll library once in authentication provider
> initialization,
> instead of every time in callback.
> Loading/unloading library every time causes random deadlocks in
> FreeLibrary().
>
> * subversion/libsvn_subr/ssl_server_trust_providers.c
> (svn_auth_get_windows_ssl_server_trust_provider): Load crypt32.dll
> and
> resolve symbols here. Library will be unloaded on pool clearing.
> (windows_ssl_server_trust_first_credentials): Use functions pointers
> from baton.
> (windows_ssl_server_trust_cleanup): New function for unloading
> crypt32.dll

        Hi,

subversion/libsvn_subr/win32_crypto.c's get_crypto_function() and its callers might have the same problem as they load and free the same dll.

If the library unloading is the issue, we should probably move all this code to a one time atomic initialization to make the library safe for multithreaded users.

I see no problem in loading the library once when first needed and keeping it in memory after that (The same behavior as hard linking to the library).

        Bert

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-11 17:45:58 CEST

This is an archived mail posted to the Subversion Dev mailing list.