Hello Nick, I did some tests again with mod_dbd, but now against trunk versions of httpd, apr, apr-utils. And it seems to me, that the problem persists. It crashes with the same symptoms as I posted last week. Function ap_dbd_prepare called with corrupted arguments (s=0x80e6ed0, query=0xffffffff, label=0xffffffff), which led to crash in apr_hashfunc_default (char_key=0x0, klen=0xbfbfe2c0).
My previous post about "soft" prepare problem looks to be irrelevant. "Internal error: DBD: failed to initialise prepared SQL statements" seems to be a back-side of corrupted but not crashed query handler. I included httpd.conf, gdb output and my compilation options. I would be glad to hear, that something is wrong with my environment (e.g. compilation, configuration etc), but I couldn't find anything I can fix. Anton Golubev ENGECON St. Petersburg P.S. Regarding autoconf for APR-Utils. Mysql detection has been fixed by Bojan a month ago in trunk version. So my patches are a bit outdated. Bojan also uses mysql-config to determine path to the libraries. The current status: it's broken in 1.2.7, but fixed in not yet released 1.3.0.
(gdb) file ./httpd Reading symbols from ./httpd...done. (gdb) run Starting program: /usr/home/anton/work/apache22/bin/httpd Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 100698)] apr_hashfunc_default (char_key=0x0, klen=0xbfbfe2c0) at tables/apr_hash.c:228 228 for (p = key; *p; p++) { (gdb) bt #0 apr_hashfunc_default (char_key=0x0, klen=0xbfbfe2c0) at tables/apr_hash.c:228 #1 0x88262bbe in find_entry (ht=0x812e018, key=0x0, klen=-1, val=0x0) at tables/apr_hash.c:260 #2 0x88262d92 in apr_hash_get (ht=0xffffffff, key=0xbfbfe2c0, klen=-1) at tables/apr_hash.c:330 #3 0x0807cde3 in ap_dbd_prepare (s=0x80e6ed0, query=0xffffffff <Error reading address 0xffffffff: Bad address>, label=0xffffffff <Error reading address 0xffffffff: Bad address>) at mod_dbd.c:152 #4 0x0807a5a5 in authn_dbd_prepare (cmd=0xbfbfe6a0, cfg=0x8128d60, query=0x8128d68 "select PASS from Users where LOGIN=%s") at mod_authn_dbd.c:70 #5 0x08072827 in invoke_cmd (cmd=0x80a79a0, parms=0xbfbfe6a0, mconfig=0x8128d60, args=0x81283bf "") at config.c:788 #6 0x080730ac in ap_walk_config (current=0x8128378, parms=0xbfbfe6a0, section_vector=0x8128960) at config.c:1141 #7 0x0806aff4 in dirsection (cmd=0xbfbfe6a0, mconfig=0x8123648, arg=0x8128beb "") at core.c:1784 #8 0x08072827 in invoke_cmd (cmd=0x80a5440, parms=0xbfbfe6a0, mconfig=0x8123648, args=0x8128298 "/home/anton>") at config.c:788 #9 0x080730ac in ap_walk_config (current=0x8128278, parms=0xbfbfe6a0, section_vector=0x81225a8) at config.c:1141 #10 0x08073b92 in ap_process_config_tree (s=0xbfbfe2c0, conftree=0x8128078, p=0x80dc018, ptemp=0xffffffff) at config.c:1743 #11 0x08061fcb in main (argc=1, argv=0xbfbfe7c8) at main.c:641 (gdb) up #1 0x88262bbe in find_entry (ht=0x812e018, key=0x0, klen=-1, val=0x0) at tables/apr_hash.c:260 260 hash = ht->hash_func(key, &klen); (gdb) up #2 0x88262d92 in apr_hash_get (ht=0xffffffff, key=0xbfbfe2c0, klen=-1) at tables/apr_hash.c:330 330 he = *find_entry(ht, key, klen, NULL); (gdb) up #3 0x0807cde3 in ap_dbd_prepare (s=0x80e6ed0, query=0xffffffff <Error reading address 0xffffffff: Bad address>, label=0xffffffff <Error reading address 0xffffffff: Bad address>) at mod_dbd.c:152 152 prepared->next = apr_hash_get(dbd_prepared_defns, s->server_hostname, (gdb) l 147 const char *label) 148 { 149 dbd_prepared *prepared = apr_pcalloc(s->process->pool, sizeof(dbd_prepared)); 150 prepared->label = label; 151 prepared->query = query; 152 prepared->next = apr_hash_get(dbd_prepared_defns, s->server_hostname, 153 APR_HASH_KEY_STRING); 154 apr_hash_set(dbd_prepared_defns, s->server_hostname, APR_HASH_KEY_STRING, 155 prepared); 156 } (gdb) up #3 0x0807cde3 in ap_dbd_prepare (s=0x80e6ed0, query=0xffffffff <Error reading address 0xffffffff: Bad address>, label=0xffffffff <Error reading address 0xffffffff: Bad address>) at mod_dbd.c:152 152 prepared->next = apr_hash_get(dbd_prepared_defns, s->server_hostname,
[EMAIL PROTECTED] uname -a FreeBSD bill.engec.ru 5.4-STABLE FreeBSD 5.4 #1: Tue Aug 23 23:38:37 MSD 2005 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/BILL-SMP i386 #! /bin/sh # # Created by configure "./configure" \ "--prefix=/home/anton/work/apache22" \ "--enable-so" \ "--enable-dbd" \ "--enable-authn-dbd" \ "$@" [EMAIL PROTECTED] svn info ./mod_dbd.c Path: mod_dbd.c Name: mod_dbd.c URL: http://svn.apache.org/repos/asf/httpd/httpd/trunk/modules/database/mod_dbd.c Repository Root: http://svn.apache.org/repos/asf Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68 Revision: 426127 Node Kind: file Schedule: normal Last Changed Author: niq Last Changed Rev: 424798 Last Changed Date: 2006-07-24 00:22:57 +0400 (Mon, 24 Jul 2006) Text Last Updated: 2006-07-27 16:52:43 +0400 (Thu, 27 Jul 2006) Properties Last Updated: 2006-07-27 16:52:43 +0400 (Thu, 27 Jul 2006) Checksum: 26ee85b299bc92e3b6c8db650bebc8c6 # ldd ./httpd ./httpd: libaprutil-1.so.2 => /usr/local/lib/libaprutil-1.so.2 (0x880e0000) libdb-4.2.so.2 => /usr/local/lib/libdb-4.2.so.2 (0x880f8000) libmysqlclient_r.so.14 => /usr/local/lib/mysql/libmysqlclient_r.so.14 (0x881b6000) libz.so.2 => /lib/libz.so.2 (0x88209000) libm.so.3 => /lib/libm.so.3 (0x88219000) libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x88234000) libapr-1.so.2 => /usr/local/lib/libapr-1.so.2 (0x88255000) libcrypt.so.2 => /lib/libcrypt.so.2 (0x88276000) libpthread.so.1 => /usr/lib/libpthread.so.1 (0x8828e000) libc.so.5 => /lib/libc.so.5 (0x882b2000) [EMAIL PROTECTED] svn info apr Path: apr URL: http://svn.apache.org/repos/asf/apr/apr/trunk Repository Root: http://svn.apache.org/repos/asf Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68 Revision: 426103 Node Kind: directory Schedule: normal Last Changed Author: wrowe Last Changed Rev: 425620 Last Changed Date: 2006-07-26 08:56:35 +0400 (Wed, 26 Jul 2006) Properties Last Updated: 2006-07-27 19:35:23 +0400 (Thu, 27 Jul 2006) [EMAIL PROTECTED] svn info apr-util Path: apr-util URL: http://svn.apache.org/repos/asf/apr/apr-util/trunk Repository Root: http://svn.apache.org/repos/asf Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68 Revision: 426103 Node Kind: directory Schedule: normal Last Changed Author: bojan Last Changed Rev: 425215 Last Changed Date: 2006-07-25 02:56:46 +0400 (Tue, 25 Jul 2006) Properties Last Updated: 2006-07-27 19:34:46 +0400 (Thu, 27 Jul 2006)
Listen 8822 User nobody Group nobody ServerAdmin [EMAIL PROTECTED] AcceptFilter http none AcceptFilter https none DBDriver mysql DBDParams "host=localhost dbname=test user=test pass=test" <Directory /home/anton> AuthType Basic AuthName 'ADMIN ZONE' AuthBasicProvider dbd AuthDBDUserPWQuery "select PASS from Users where LOGIN=%s" require user anton </Directory>