Re: Deadlock in libpq

From: Erik Hesselink <hesselink(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Merlin Moncure <mmoncure(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Deadlock in libpq
Date: 2011-03-24 15:25:19
Message-ID: AANLkTi=njN3rFDr6b8opSXB=JFbxjANtupdvkBQo=EUH@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Mar 24, 2011 at 16:00, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Merlin Moncure <mmoncure(at)gmail(dot)com> writes:
>> *something* must be initializing ssl, or you can't make secure
>> connections from libpq.  you need to find out which pq ssl init
>> function is begin called, when it is being called, and with what
>> arguments. One of the main things PQInitSSL does is set up a lock
>> vector which it passes to the crypto library.  The fact you are having
>> blocking issues around those locks is suggesting SSL was not set up
>> properly, something happened after being set up so that the locks are
>> no longer good, you have application thread issue (although that
>> sounds unlikely), or (least likely worst case) there is a bug in
>> crypto.
>
> Given that Erik still sees trouble when not using SSL, my money would
> be on the idea that somewhere he's got two threads trying to use the
> same connection object concurrently.  The SSL confusion is just one
> symptom of that.

I've just looked at all the spots in the code where I fork a new
thread, and nowhere do I share a connection between threads. I've also
checked the source for HDBC-postgresql, and it also creates a new
connection each time I ask it to (i.e. no caching/pooling etc) by
calling PQconnectdb. So I'm pretty sure I'm not sharing a connection
between two threads. This is a web application, so there is pretty
good isolation between different threads (almost no shared state).

--
Erik Hesselink
http://silkapp.com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2011-03-24 15:43:05 Re: Deadlock in libpq
Previous Message raghu ram 2011-03-24 15:09:33 Re: What does error "psql: Kerberos 5 authentication not supported" means?