From:             [EMAIL PROTECTED]
Operating system: lnx 2.4.9-31smp  glibc 2.2.4-24
PHP version:      4.2.0
PHP Bug Type:     Apache2 related
Bug description:  mysql_connect deadlocks on gethostbyname

Testing is simple.  Make sure nscd is not running on the machine and that
the mysql server is not in the hosts file
but is in DNS. 

Test page.
<?
$db=mysql_connect("server.com","user","pass");
mysql_select_db("database",$db);
$result=mysql_query("select FirstName from Users");
while ( $row=mysql_fetch_row($result)) {
echo ("$row[0]\n");
}
?>

Standalone it works fine.  When run through the webserver
it hangs forever getting stuck in the gethostbyname from
the mysql_connect.  I even changed the libmysqlclient 
libary to the libmysqlclient_r library in the configure and verified it
was being used with a ldd of libphp4.so.

The webserver is apache 2.0.35 configured with these options:
./configure --prefix=/prod/apache --enable-layout=Apache --enable-ssl
--enable-vhost-alias --enable-proxy --enable-rewrite --enable-so
--with-mpm=worker --disable-userdir

The php module is configured with:
./configure  --prefix=/prod/apache/php --with-apxs2=/prod/apache/bin/apxs
--with-openssl --with-zlib --with-gd --with-java=/usr/java
--with-mysql=/prod/mysql --with-readline --enable-memory-limit

It will work if nscd is on, or if /etc/hosts contains the name of the
machine that needs to be resolved.

#0  0x402bdba5 in __sigsuspend (set=0x40b3236c) at
../sysdeps/unix/sysv/linux/sigsuspend.c:45
#1  0x402821d9 in __pthread_wait_for_restart_signal (self=0x40b34be0) at
pthread.c:969
#2  0x40283a2c in __pthread_lock (lock=0x4001649c, self=0x40b34be0) at
spinlock.c:149
#3  0x40280d46 in __pthread_mutex_lock (mutex=0x4001648c) at mutex.c:109
#4  0x403a8e40 in _dl_open (file=0x40b3262c "libnss_dns.so.2", mode=1,
caller=0x0) at dl-open.c:401
#5  0x403a9cd1 in do_dlopen (ptr=0x40b325fc) at dl-libc.c:78
#6  0x4000d7c3 in _dl_catch_error (objname=0x40b325f4,
errstring=0x40b325f8, operate=0x403a9cb0 <do_dlopen>, args=0x40b325fc)
    at dl-error.c:152
#7  0x403a9b7c in __libc_dlopen (__name=0x40b3262c "libnss_dns.so.2") at
dl-libc.c:42
#8  0x4038aeef in __nss_lookup_function (ni=0x8130940, fct_name=0x403be4ee
"gethostbyname_r") at nsswitch.c:340
#9  0x4038b911 in __nss_next (ni=0x40b326dc, fct_name=0x403be4ee
"gethostbyname_r", fctp=0x40b326e0, status=-1, all_values=0)
    at nsswitch.c:194
#10 0x4038e1dd in __gethostbyname_r (name=0x82322fc
"database.mycompany.com", resbuf=0x40b3316c, buffer=0x40b3296c "\177", 
    buflen=2048, result=0x40b3271c, h_errnop=0x40b32768) at
../nss/getXXbyYY_r.c:215
#11 0x405da13c in my_gethostbyname_r () from
/prod/mysql/lib/mysql/libmysqlclient_r.so.10
#12 0x405d1f69 in mysql_real_connect () from
/prod/mysql/lib/mysql/libmysqlclient_r.so.10
#13 0x4049b0ea in php_mysql_do_connect (ht=3, return_value=0x8236ccc,
this_ptr=0x0, return_value_used=1, tsrm_ls=0x81bcdc8, 
    persistent=0) at php_mysql.c:662
#14 0x4049b2e4 in zif_mysql_connect (ht=3, return_value=0x8236ccc,
this_ptr=0x0, return_value_used=1, tsrm_ls=0x81bcdc8)
    at php_mysql.c:714
#15 0x404652e8 in execute (op_array=0x8232294, tsrm_ls=0x81bcdc8) at
./zend_execute.c:1598
#16 0x40473f92 in zend_execute_scripts (type=8, tsrm_ls=0x81bcdc8,
retval=0x0, file_count=3) at zend.c:810
#17 0x4048163a in php_execute_script (primary_file=0x40b348bc,
tsrm_ls=0x81bcdc8) at main.c:1381
#18 0x4047df8d in php_output_filter (f=0x822d290, bb=0x822d4a0) at
sapi_apache2.c:401
#19 0x080aa99f in ap_pass_brigade (next=0x822d290, bb=0x822d380) at
util_filter.c:534
#20 0x080b0a5b in default_handler (r=0x81fbe60) at core.c:3247
#21 0x080a1236 in ap_run_handler (r=0x81fbe60) at config.c:193
#22 0x080a16a1 in ap_invoke_handler (r=0x81fbe60) at config.c:373
#23 0x0808a5d7 in ap_process_request (r=0x81fbe60) at http_request.c:261
#24 0x08086cb5 in ap_process_http_connection (c=0x81c1428) at
http_core.c:291
#25 0x080a9372 in ap_run_process_connection (c=0x81c1428) at
connection.c:85
#26 0x0809e876 in process_socket (p=0x81c1318, sock=0x81c1350,
my_child_num=0, my_thread_num=0, bucket_alloc=0x81bf2a8)
    at worker.c:613
#27 0x0809ed73 in worker_thread (thd=0x8142590, dummy=0x81bcdc8) at
worker.c:886
#28 0x4003ae34 in dummy_worker (opaque=0x8142590) at thread.c:127
#29 0x4027fc6f in pthread_start_thread (arg=0x40b34be0) at manager.c:284
#30 0x4027fd5f in pthread_start_thread_event (arg=0x40b34be0) at
manager.c:308

-- 
Edit bug report at http://bugs.php.net/?id=16806&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=16806&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=16806&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=16806&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=16806&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16806&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=16806&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=16806&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=16806&r=submittedtwice

Reply via email to