Skip to Content.
Sympa Menu

freetds - Re: [freetds] libct ct_connect thread_safe

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Peter Deacon <peterd AT iea-software.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] libct ct_connect thread_safe
  • Date: Thu, 15 Dec 2011 21:17:54 -0800 (Pacific Standard Time)

On Thu, 15 Dec 2011, James K. Lowden wrote:

On Thu, 15 Dec 2011 11:06:39 -0500
christos AT zoulas.com (Christos Zoulas) wrote:

| I have 2 threads each with their *own* connection to different
| servers. The problem is
|
| static SSL_CTX *ssl_ctx
|
| inside net.c and the way it is being initialized.

This is easily fixed as follows... I added some othe minor fixes as a
christmas bonus.

Thanks, Christos. Applied to CVS HEAD. Merry Christmas to you, too.

IIUC the use-case here is two threads each opening its own connection.
That should work, yes.

Reminds me OpenSSL is a bit weird in that you have to register your own synchronization callbacks (reader/writers) in order for SSL to be thread safe.

Even if you keep connections in their separate threads there is still a little bit of shared state to manage the caches for SSL session resumption in the client. Given TDS connections tend to be relatively long lived it is very hard to get this sort of synchronization bugs to materialize in real life. It can creep up if your app is making lots of new connections concurrently.

Does anyone have a problem with assuming pthread_rewlock_* is available on UNIX systems where TDS_HAVE_PTHREAD_MUTEX is defined?

regards,
Peter




Archive powered by MHonArc 2.6.24.

Top of Page