ID: 42650
User updated by: gordonthree at gmail dot com
Reported By: gordonthree at gmail dot com
-Status: Feedback
+Status: Open
Bug Type: ODBC related
Operating System: Centos 5
PHP Version: 5CVS-2007-09-13 (CVS)
New Comment:
@jani
When a correct username and password is supplied, it works great, no
crash.
Previous Comments:
------------------------------------------------------------------------
[2007-09-13 07:57:09] [EMAIL PROTECTED]
First of all, doesn't it not crash when you use correct
username/password? (try search for existing reports about using
odbc_pconnect(), there are open bug reports about it crashing already..)
------------------------------------------------------------------------
[2007-09-13 04:03:00] gordonthree at gmail dot com
sorry, it looks like the trace I provided was not for the worker that
actually died. any tips on how to determine what httpd worker thread to
attach to, to capture it dieing?
------------------------------------------------------------------------
[2007-09-13 03:59:09] gordonthree at gmail dot com
Description:
------------
When attempting to connect to an odbc data source via odbc_pconnect
with incorrect username and/or password, the httpd (apache) instance
handling that connection segfaults.
OS is Centos 5 (RHEL5) running in a vmware server virtual machine 32
bit
I am using ODBC to connect to a mysql server running on localhost for
persistent db connections and mysql stored proc support.
Reproduce code:
---------------
<HTML><BODY>
<?php
$link_id = odbc_pconnect('Default', 'root','badpassword');
if(!$link_id){die("no connection!");}
else{echo "connected";}
?>
</BODY></HTML>
Expected result:
----------------
user should see connected printed on web page.
Actual result:
--------------
from httpd/error_log
[Wed Sep 12 23:45:44 2007] [notice] child pid 2233 exit signal
Segmentation fault (11)
[EMAIL PROTECTED] ~]# gdb http 2232
GNU gdb Red Hat Linux (6.5-16.el5rh)
This GDB was configured as "i386-redhat-linux-gnu"...http: No such file
or directory.
Attaching to process 2232
Reading symbols from /usr/sbin/httpd...(no debugging symbols
found)...done.
Using host libthread_db library "/lib/libthread_db.so.1".
.
(no debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_suexec.so
Reading symbols from /usr/lib/httpd/modules/mod_disk_cache.so...(no
debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_disk_cache.so
Reading symbols from /usr/lib/httpd/modules/mod_file_cache.so...
(no debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_file_cache.so
Reading symbols from /usr/lib/httpd/modules/mod_mem_cache.so...(no
debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_mem_cache.so
Reading symbols from /usr/lib/httpd/modules/mod_cgi.so...
(no debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_cgi.so
Reading symbols from /usr/lib/httpd/modules/mod_perl.so...(no debugging
symbols found)...done.
Loaded symbols for /etc/httpd/modules/mod_perl.so
Reading symbols from
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so...
(no debugging symbols found)...done.
Loaded symbols for
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/libperl.so
Reading symbols from /lib/libutil.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from /usr/lib/httpd/modules/libphp5.so...
(no debugging symbols found)...done.
Loaded symbols for /etc/httpd/modules/libphp5.so
Reading symbols from /usr/lib/libaspell.so.15...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libaspell.so.15
Reading symbols from /usr/lib/libpspell.so.15...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpspell.so.15
Reading symbols from /usr/lib/sse2/libgmp.so.3...done.
Loaded symbols for /usr/lib/sse2/libgmp.so.3
Reading symbols from /usr/lib/libcurl.so.3...done.
Loaded symbols for /usr/lib/libcurl.so.3
Reading symbols from /usr/lib/libbz2.so.1...done.
Loaded symbols for /usr/lib/libbz2.so.1
Reading symbols from /usr/lib/libxml2.so.2...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /usr/lib/libidn.so.11...done.
Loaded symbols for /usr/lib/libidn.so.11
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /usr/lib/httpd/modules/mod_python.so...done.
Loaded symbols for /etc/httpd/modules/mod_python.so
Reading symbols from /usr/lib/libpython2.4.so.1.0...done.
Loaded symbols for /usr/lib/libpython2.4.so.1.0
Reading symbols from /usr/lib/httpd/modules/mod_ssl.so...done.
Loaded symbols for /etc/httpd/modules/mod_ssl.so
Reading symbols from /usr/lib/libdistcache.so.1...done.
Loaded symbols for /usr/lib/libdistcache.so.1
Reading symbols from /usr/lib/libnal.so.1...done.
Loaded symbols for /usr/lib/libnal.so.1
Reading symbols from /usr/lib/php/modules/ldap.so...done.
Loaded symbols for /usr/lib/php/modules/ldap.so
Reading symbols from /usr/lib/php/modules/mbstring.so...done.
Loaded symbols for /usr/lib/php/modules/mbstring.so
Reading symbols from /usr/lib/php/modules/mysql.so...done.
Loaded symbols for /usr/lib/php/modules/mysql.so
Reading symbols from /usr/lib/mysql/libmysqlclient.so.15...done.
Loaded symbols for /usr/lib/mysql/libmysqlclient.so.15
Reading symbols from /usr/lib/php/modules/mysqli.so...done.
Loaded symbols for /usr/lib/php/modules/mysqli.so
Reading symbols from /usr/lib/php/modules/odbc.so...done.
Loaded symbols for /usr/lib/php/modules/odbc.so
Reading symbols from /usr/lib/libodbc.so.1...done.
Loaded symbols for /usr/lib/libodbc.so.1
Reading symbols from /usr/lib/libodbcpsql.so.2...done.
Loaded symbols for /usr/lib/libodbcpsql.so.2
Reading symbols from /usr/lib/php/modules/pdo.so...done.
Loaded symbols for /usr/lib/php/modules/pdo.so
Reading symbols from /usr/lib/php/modules/pdo_mysql.so...done.
Loaded symbols for /usr/lib/php/modules/pdo_mysql.so
Reading symbols from /usr/lib/php/modules/pdo_odbc.so...done.
Loaded symbols for /usr/lib/php/modules/pdo_odbc.so
Reading symbols from /usr/lib/php/modules/pdo_sqlite.so...done.
Loaded symbols for /usr/lib/php/modules/pdo_sqlite.so
0x00310402 in __kernel_vsyscall ()
(gdb) where
#0 0x00310402 in __kernel_vsyscall ()
#1 0x004179eb in semop () from /lib/libc.so.6
#2 0x00333dba in apr_os_proc_mutex_put () from /usr/lib/libapr-1.so.0
#3 0x00333392 in apr_proc_mutex_lock () from /usr/lib/libapr-1.so.0
#4 0x00fc56ee in ap_graceful_stop_signalled () from /usr/sbin/httpd
#5 0x00fc5b71 in ap_graceful_stop_signalled () from /usr/sbin/httpd
#6 0x00fc5c4a in ap_graceful_stop_signalled () from /usr/sbin/httpd
#7 0x00fc67ab in ap_mpm_run () from /usr/sbin/httpd
#8 0x00f9d127 in main () from /usr/sbin/httpd
PHP info:
# php -v
PHP 5.1.6 (cli) (built: May 8 2007 19:51:21)
# httpd -V
Server version: Apache/2.2.3
Server built: Jun 26 2007 19:26:32
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
# cat /etc/odbc.ini
[ODBC Data Sources]
MySQL = MySQL Generic ODBC Driver
[Default]
DRIVER=/usr/lib/libmyodbc5.so
SERVER=localhost
DATABASE=ulogdb
UID=
PWD=
PORT=3306
# mysql -V
mysql Ver 14.12 Distrib 5.0.22, for redhat-linux-gnu (i686) using
readline 5.0
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42650&edit=1