Bug #16272 Updated: SegFault in MySQL

From: Date: Wed, 03 Apr 2002 19:24:48 +0000
Subject: Bug #16272 Updated: SegFault in MySQL
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-3950@lists.php.net to get a copy of this message
 ID:               16272
 Updated by:       ronen@greyzone.com
 Reported By:      jweiss@greyzone.com
 Status:           Open
 Bug Type:         MySQL related
 Operating System: Linux 2.4.x
 PHP Version:      4.1.2
 New Comment:

I just set up a separate box to test if this bug has anything to do
with what version of glibc is used.

The bug is still there in the following setup:

glibc-2.2.4-19.3 (RedHat Linux 7.2)
MySQL-3.23.42-1
PHP v4.1.2 compiled as a static module for Apache 1.3.22


Previous Comments:
------------------------------------------------------------------------

[2002-03-26 13:42:23] jweiss@greyzone.com

The bug still shows up in 4.2.0RC1

------------------------------------------------------------------------

[2002-03-26 13:41:16] jweiss@greyzone.com

The segfault occurs in the following code snippet (a db wrapper that we
wrote for MySQL). What is odd is that this only happens on occasion:
this method is called exceptionally often in our code and only breaks
(in 4.1.x, not 4.0.x) once in a while and not on exceptional
queries--we have, for instance, seen it break on a query that returns
only one row. Anyway, here's the code:

	/** 
	* send a query to the DBMS using the dbLinkID
	* @param $dbLink - the link connection ID [INT]
	* @param $query [STRING]
	* @return the query in ORACLE format $result[FIELDNAME][ROWNUM]=value
[2D HASH]
	* @access public
	*/
	function db_query($dbLink, $query){
		$res=mysql_db_query($this->dbase,$query,$dbLink);
		while($row=@mysql_fetch_array($res,MYSQL_ASSOC)){
			while(list($key,$val)=@each($row)){
				$result[$key][]=$val;
			}
			$x++;
		}
		if(!is_array($result)) $result=array();	
		return $result;
	}

Thanks for looking into this.

--jonathan

------------------------------------------------------------------------

[2002-03-26 07:59:40] sander@php.net

When does this segfault occur? Can you provide a sample script?
Also, can you try 4.2.0RC1 (see www.php.net/~derick) and see if it has
been fixed?

------------------------------------------------------------------------

[2002-03-25 19:48:58] jweiss@greyzone.com

maybe related to BUG #14860; here's the backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x813a1e5 in zend_fetch_resource (passed_id=0x829ca50, default_id=-1,
    resource_type_name=0x819174e "MySQL-Link", found_resource_type=0x0,
num_resource_types=2)
    at zend_list.c:123
123                     } else if ((*passed_id)->type != IS_RESOURCE)
{
(gdb) bt
#0  0x813a1e5 in zend_fetch_resource (passed_id=0x829ca50,
default_id=-1,
    resource_type_name=0x819174e "MySQL-Link", found_resource_type=0x0,
num_resource_types=2)
    at zend_list.c:123
#1  0x809363c in php_mysql_do_query_general (query=0x829ca4c,
mysql_link=0x829ca50,
    link_id=-1, db=0x829ca48, use_store=1, return_value=0x8633cf4) at
php_mysql.c:981
#2  0x8093bc2 in zif_mysql_db_query (ht=3, return_value=0x8633cf4,
this_ptr=0x0,
    return_value_used=1) at php_mysql.c:1113
#3  0x8156da1 in execute (op_array=0x8622a44) at ./zend_execute.c:1590
#4  0x8156f79 in execute (op_array=0x844e7bc) at ./zend_execute.c:1630
#5  0x8156f79 in execute (op_array=0x859930c) at ./zend_execute.c:1630
#6  0x8156f79 in execute (op_array=0x86092a8) at ./zend_execute.c:1630
#7  0x8156f79 in execute (op_array=0x8530668) at ./zend_execute.c:1630
#8  0x8156f79 in execute (op_array=0x8617eec) at ./zend_execute.c:1630
#9  0x8158c96 in execute (op_array=0x82c8a8c) at ./zend_execute.c:2133
#10 0x813395c in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at zend.c:814
#11 0x8080dee in php_execute_script (primary_file=0xbffff938) at
main.c:1307
#12 0x813e8f9 in apache_php_module_main (r=0x82344ac,
display_source_mode=0)
    at sapi_apache.c:90
#13 0x807d876 in send_php ()
#14 0x807d8cf in send_parsed_php ()
#15 0x8160d93 in ap_invoke_handler ()
#16 0x8174d19 in process_request_internal ()
#17 0x8174d7c in ap_process_request ()
#18 0x816c30e in child_main ()
#19 0x816c4a0 in make_child ()
#20 0x816c5f9 in startup_children ()
#21 0x816cc56 in standalone_main ()
#22 0x816d413 in main ()
#23 0x40140e29 in __libc_start_main () from /lib/libc.so.6

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=16272&edit=1



Thread (22 messages)

« previous php.bugs (#3950) next »