#34623 [Fbk->Opn]: Segfault when selecting 'text' field with pdo/mysql

From: Date: Wed, 28 Sep 2005 21:11:49 +0000
Subject: #34623 [Fbk->Opn]: Segfault when selecting 'text' field with pdo/mysql
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-85735@lists.php.net to get a copy of this message
 ID:               34623
 User updated by:  stewey at ambitious dot ca
 Reported By:      stewey at ambitious dot ca
-Status:           Feedback
+Status:           Open
 Bug Type:         PDO related
 Operating System: Mac OS X 10.4.2
 PHP Version:      5CVS-2005-09-27 (snap)
 New Comment:

It's actually a 'longtext'. I'm very sorry for the 
misinformation. To the obvious question: yes, this makes the 
difference. If it's 'text', no problem, longtext = segfault. 
Again, I'm sorry.

Yes, I can repro via the CLI. Would you like a backtrace of 
that?


CREATE TABLE article (
  articleId int(10) unsigned NOT NULL auto_increment,
  parentId int(10) unsigned NOT NULL default '0',
  templateId int(10) unsigned NOT NULL default '0',
  title varchar(100) NOT NULL default '',
  subTitle varchar(255) default NULL,
  text longtext NOT NULL,
  creationTime timestamp NULL default NULL,
  modificationTime timestamp NULL default 
CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  state enum('Online','Offline') NOT NULL default 
'Online',
  audience enum('Private','Public') NOT NULL default 
'Private',
  childSortOrder enum
('Title','Date','Popularity','Arbitrary') NOT NULL default 
'Title',
  sortWeight int(11) NOT NULL default '0',
  PRIMARY KEY  (articleId),
  KEY parentId (parentId,templateId),
  FULLTEXT KEY title (title,subTitle,text)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


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

[2005-09-28 22:03:52] tony2001@php.net

Can't reproduce.
Please show your CREATE TABLE command.
Also, are you able to replicate it using PHP CLI ?

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

[2005-09-28 17:20:35] stewey at ambitious dot ca

$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --
with-mysql=/usr/local/mysql --enable-pdo --prefix=/usr/
local/php5 --with-xmlrpc --with-pdo-mysql --enable-debug

$ make

$ make install

Hope that helps!

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

[2005-09-28 13:03:04] sniper@php.net

How did you compile/configure PHP?


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

[2005-09-28 00:20:29] stewey at ambitious dot ca

Bug has resurfaced. Tested with php5-200509271430. Reproduce 
code is the same as before.

[Tue Sep 27 15:15:31 2005] [notice] child pid 15934 exit 
signal Segmentation fault (11)

Here is the backtrace:

(gdb) run -X
Starting program: /usr/local/apache2/bin/httpd -X
Reading symbols for shared libraries .+++ done
Reading symbols for shared libraries .... done

Program received signal EXC_BAD_ACCESS, Could not access 
memory.
Reason: KERN_INVALID_ADDRESS at address: 0x7269748d
0x020a1504 in dispatch_param_event (stmt=0x49ac08, 
event_type=PDO_PARAM_EVT_FETCH_POST) at /Users/stewey/
Desktop/php5-200509271430/ext/pdo/pdo_stmt.c:133
133             if (!stmt->methods->param_hook) {
(gdb) bt
#0  0x020a1504 in dispatch_param_event (stmt=0x49ac08, 
event_type=PDO_PARAM_EVT_FETCH_POST) at /Users/stewey/
Desktop/php5-200509271430/ext/pdo/pdo_stmt.c:133
#1  0x020a26b4 in do_fetch_common (stmt=0x49ac08, 
ori=PDO_FETCH_ORI_NEXT, offset=0, do_bind=1) at /Users/
stewey/Desktop/php5-200509271430/ext/pdo/pdo_stmt.c:542
#2  0x020a36d8 in do_fetch (stmt=0x49ac08, do_bind=1, 
return_value=0x49fb78, how=PDO_FETCH_ASSOC, 
ori=PDO_FETCH_ORI_NEXT, offset=0, return_all=0x0) at /Users/
stewey/Desktop/php5-200509271430/ext/pdo/pdo_stmt.c:754
#3  0x020a56e8 in zif_PDOStatement_fetchAll (ht=1, 
return_value=0x49bba8, return_value_ptr=0x0, 
this_ptr=0x49a7e8, return_value_used=1) at /Users/stewey/
Desktop/php5-200509271430/ext/pdo/pdo_stmt.c:1348
#4  0x0232daac in zend_do_fcall_common_helper_SPEC 
(execute_data=0xbfffe578) at /Users/stewey/Desktop/
php5-200509271430/Zend/zend_vm_execute.h:187
#5  0x0232eca4 in ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER 
(execute_data=0xbfffe578) at /Users/stewey/Desktop/
php5-200509271430/Zend/zend_vm_execute.h:310
#6  0x0232d4e8 in execute (op_array=0x499678) at /Users/
stewey/Desktop/php5-200509271430/Zend/zend_vm_execute.h:88
#7  0x022ed6b0 in zend_execute_scripts (type=8, retval=0x0, 
file_count=3) at /Users/stewey/Desktop/php5-200509271430/
Zend/zend.c:1087
#8  0x02282420 in php_execute_script 
(primary_file=0xbfffef44) at /Users/stewey/Desktop/
php5-200509271430/main/main.c:1677
#9  0x023a2840 in php_handler (r=0x18bde50) at /Users/
stewey/Desktop/php5-200509271430/sapi/apache2handler/
sapi_apache2.c:568
#10 0x0003daf4 in ap_run_handler (r=0x18bde50) at config.c:
152
#11 0x0003e0bc in ap_invoke_handler (r=0x18bde50) at 
config.c:364
#12 0x0001203c in ap_process_request (r=0x18bde50) at 
http_request.c:249
#13 0x0000cc14 in ap_process_http_connection (c=0x18b7f28) 
at http_core.c:251
#14 0x00044898 in ap_run_process_connection (c=0x18b7f28) at 
connection.c:43
#15 0x000298f8 in child_main (child_num_arg=4828168) at 
prefork.c:610
#16 0x000299dc in make_child (s=0x180ad58, slot=0) at 
prefork.c:650
#17 0x00029b14 in startup_children (number_to_start=5) at 
prefork.c:722
#18 0x00029fe0 in ap_mpm_run (_pconf=0x1806418, plog=0x5, 
s=0x180ad58) at prefork.c:941
#19 0x0002baf4 in main (argc=2, argv=0xbffffb20) at main.c:
618

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

[2005-09-24 06:03:28] stewey at ambitious dot ca

Description:
------------
Selecting a text field using PDO and the PDO MySQL driver 
intermittently causes a seg fault. Occurs roughly one out of 
two times. If I don't select the text field, it runs fine. 

Possibly related to Bug #33533.

Reproduce code:
---------------
$PDO = new PDO(  
	"mysql:dbname=test;host=127.0.0.1", 
	'user', 'pass' );
$statement = $PDO->prepare("select * from table");
$statement->execute();
$rows = $statement->fetchAll( PDO_FETCH_ASSOC );

print_r($rows);
exit;


Expected result:
----------------
All columns of all rows of the table.

Actual result:
--------------
[Fri Sep 23 20:55:10 2005] [notice] child pid 12721 exit 
signal Segmentation fault (11)



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


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


Thread (21 messages)

« previous php.bugs (#85735) next »