ID: 42650 Updated by: [EMAIL PROTECTED] Reported By: gordonthree at gmail dot com -Status: Open +Status: Feedback Bug Type: ODBC related Operating System: Centos 5 PHP Version: 5CVS-2007-09-13 (CVS) New Comment:
Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. Can you please compile PHP with --enable-debug and try running the script on the command line. The backtrace should be much better then the one you currently have. From the current backtrace it does not appear that the crash is inside PHP. Previous Comments: ------------------------------------------------------------------------ [2007-09-13 12:24:36] gordonthree at gmail dot com @jani When a correct username and password is supplied, it works great, no crash. ------------------------------------------------------------------------ [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