apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Dubov <oa...@yahoo.com>
Subject Re: Weird crash in apr_palloc
Date Mon, 04 Dec 2006 05:02:54 GMT
> Yes, this is a classic symptom of heap corruption.  Try running with:
>   export MALLOC_CHECK_=2
> and it may crash closer to the actual bug.
Apparently, there were two different bugs causing the crash I reported. I was able to work
one of them by allocating all the needed space for sql results array from the long living
pool in
dbd_mysql_prepare (instead of using per-connection pool - it's something mysql related). The
bug, however left me buffled:

I'm returning apr_dbd_t struct from dbd_mysql_open, say:
apr_dbd_t *handle == 0x80b5610
handle->conn == 0x80b57a0 (db specific handle)

yet, when I get the dbd_mysql_close call, handle->conn is misteriously changed:
apr_dbd_t *handle == 0x80b5610
handle->conn == 0x809db00
(causing another SEGV).
Interestingly enough, when run normally, handle->conn is always NULL (junk value only appears
httpd -X), so there's no crash, but database handle does not get closed either.

Any questions? Get answers on any topic at www.Answers.yahoo.com.  Try it now.

View raw message