On Thu, Mar 24, 2011 at 16:00, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > Merlin Moncure <mmoncure@xxxxxxxxx> 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 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general