On 19-07-11 17:55, Jan-Henrik Haukeland wrote:
On Jul 19, 2011, at 3:27 PM, Michel Verbraak wrote:

We use the libzdb library in one of our projects together with mysql 5.5

This program is multithreaded and the different threads (forks) use the same connection pool. On a sigterm to the main process the child processes are killed and the main process will clear all allocated resource. When this main process calls "ConnectionPool_free" this function never returns.

I can produce more debug info when needed.
If you ask if we have seen the same problem, then the answer is no. In our own applications which uses libzdb we also call ConnectionPool_free after receiving SIGTERM. Calling ConnectionPool_free is part of a shutdown chain and we should have noticed if the call did not return.

When you say "threads (forks)", I wonder if you use libzdb from actual sub-processes created via fork instead of threads? If this is the case, then your problem is right there - libzdb use mutexes to serialize access to shared resources which only works with threads.


--
To unsubscribe:
http://www.tildeslash.com/mailman/listinfo/libzdb-general
We use fork and not threads. So the problem is clear.
Thank you.