The apr_dbd_get_driver call blocks in the child process  I should also note
this doesn't block when I'm running apache in debug (-X) and that I'm using
apache 2.4 with the event mpm.

Here is some backtrace. It is the same in each child process.

(gdb) backtrace
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x000000315ca09c56 in _L_lock_840 () from /lib64/libpthread.so.0
#2  0x000000315ca09b58 in __pthread_mutex_lock (mutex=0x21bc2a8) at
pthread_mutex_lock.c:65
#3  0x00007f59a0124739 in apr_thread_mutex_lock (mutex=<optimized out>)
    at locks/unix/thread_mutex.c:92
#4  0x00007f59a03578fc in apu_dso_mutex_lock () at misc/apu_dso.c:46
#5  0x00007f59a034e036 in apr_dbd_get_driver (pool=pool@entry=0x21c2138,
    name=0x7f599b1ea21c "mysql", driver=0x230ee40) at dbd/apr_dbd.c:167
#6  0x00007f599b1e4e8b in connect_database (db_pool=0x21c2138,
    error_messages=0x7f599a7c7000, dbd_config=dbd_config@entry=0x2273940)
    at database/dbd.c:35
#7  0x00007f599b1e3b96 in mediaplayer_child_init (child_pool=0x2311418,
s=0x2270e30)
    at mod_mediaplayer.c:294
#8  0x000000000044f539 in ap_run_child_init ()
#9  0x000000000047508a in child_main ()
#10 0x0000000000475466 in make_child ()
#11 0x0000000000475527 in startup_children ()
#12 0x0000000000475f11 in event_run ()
#13 0x000000000043088c in ap_run_mpm ()
#14 0x0000000000429472 in main ()
(gdb)



On Tue, Feb 5, 2013 at 11:20 AM, Nick Kew <n...@apache.org> wrote:

>
> On 5 Feb 2013, at 16:51, Reyad Attiyat wrote:
>
> > Hello modules-dev,
> > Was not sure if I should post in this mailing list or apr but I
> > have trouble using apr-util and the mysql dbd driver. In my apache
> module i
> > make several mysql connections using the apr dbd functions. I make one
> > connection in the postconfig hook where I perform a directory
> > syncronization with file metadata to the database. This is done in a
> thread
> > and works fine. Next I connect in the child init hook. This is where
> > apr_dbd_mysql blocks on a pthread lock.
>
> What particular call blocks?
> I take it you're using matching apr_dbd_open and apr_dbd_close
> calls in all these (startup-time) functions?
>
> --
> Nick Kew
>

Reply via email to