From:             vanessa at mobezeinc dot com
Operating system: CentOS 5.3
PHP version:      5.2.10
PHP Bug Type:     Scripting Engine problem
Bug description:  Segmentation fault durng mysql_fetch_assoc

Description:
------------
During mysql fetch the php script dies and segmentation fault appears in
the appache logs.  The code will pull a few rows from the db and after ~10
rows the fault occurs. It happens on both apache 2.2.3 and apache 1.3. 

Reproduce code:
---------------
i've replaced actual values with place holders in some cases.
OBCReadDBConn is a wrapper class for mysql functions

$readConn = OBCReadDBConn::init();

$query = " select * from TABLENANE order by `table`, `column`,
`sort_order`, `desc`, `value` ";

$result = $readConn->query($query);
$tableDetails = array();

if ($result) {
        while ($row = $result->getNextRow() ) {
            do something with the row
        }
}


[0xbf848e00] mysql_fetch_assoc()
/var/homehtml/html/classes/database/DBResult.php:27
[0xbf84a0d0] getNextRow()
/var/homehtml/html/classes/utility/Lookup.php:54
[0xbf84aae0] initLookup()
/var/homehtml/html/classes/utility/Lookup.php:159
[0xbf84ac90] getArray() /var/homehtml/html/classes/utility/Lookup.php:244
[0xbf84ae00] getDesc() /var/homehtml/html/classes/utility/Lookup.php:287
[0xbf84d3d0] getLookupDesc()
/var/homehtml/html/classes/utility/login_engine.php:717
[0xbf84d5a0] process_login() /var/homehtml/html/login.php:26


Expected result:
----------------
db row array
table description

"table" "varchar(25)"   "NO"    "PRI"   ""      ""
"column"        "varchar(40)"   "NO"    "PRI"   ""      ""
"value" "int(2)"        "NO"    "PRI"   ""      ""
"desc"  "varchar(100)"  "NO"    ""      ""      ""
"misc"  "text"  "YES"   ""      \N      ""
"sort_order"    "smallint(2)"   "NO"    ""      ""      ""

Actual result:
--------------
Last lines of xdebug out put

    0.1267    2330092     +316               -> DBResult->getNextRow()
/home/www/html/classes/utility/Lookup.php:54
    0.1268    2330116      +24                 ->
mysql_fetch_assoc(resource(44) of type (mysql result))
/home/www/html/classes/database/DBResult.php:27


gdb on apache core dump (xdebug not running during this core dump)
Core was generated by `/usr/sbin/httpd -k restart'.
Program terminated with signal 11, Segmentation fault.
[New process 15922]
#0  _zend_mm_alloc_int (heap=0x93dc798, size=16)
at /var/php-5.2.10/Zend/zend_alloc.c:1785
1785                            heap->cache[index] =
best_fit->prev_free_block;



(gdb) bt full
#0  _zend_mm_alloc_int (heap=0x93dc798, size=16)
at /var/php-5.2.10/Zend/zend_alloc.c:1785
       index = 2
       bitmap = <value optimized out>
       best_fit = <value optimized out>
       true_size = 24
       block_size = <value optimized out>
       remaining_size = <value optimized out>
       segment_size = <value optimized out>
       segment = <value optimized out>
       keep_rest = <value optimized out>
#1  0x0124928f in php_mysql_fetch_hash (ht=<value optimized out>,
return_value=0x967e4f0, return_value_ptr=<value optimized out>,
this_ptr=0x0,
   return_value_used=1, result_type=1, expected_args=1, into_object=0)
at /var/php-5.2.10/ext/mysql/php_mysql.c:1964
       result = (zval **) 0x93e5404
       arg2 = (zval **) 0xb5d50ccc
       mysql_row = (MYSQL_ROW) 0x960e1b8
       mysql_field = (MYSQL_FIELD *) 0x960be08
       mysql_row_lengths = (long unsigned int *) 0x94c5784
       i = 1
       res = (zval *) 0x3f2ab784
       ctor_params = (zval *) 0x0
       ce = (zend_class_entry *) 0x0
#2  0x013f2bc8 in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf848e00) at /var/php-5.2.10/Zend/zend_vm_execute.h:200
       return_reference = 0 '\0'
       opline = (zend_op *) 0x9611ef8
       original_return_value = <value optimized out>
       current_scope = (zend_class_entry *) 0x0
       current_this = (zval *) 0x0
       should_change_scope = 0 '\0'

-- 
Edit bug report at http://bugs.php.net/?id=49009&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=49009&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=49009&r=trysnapshot53
Try a snapshot (PHP 6.0):            
http://bugs.php.net/fix.php?id=49009&r=trysnapshot60
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=49009&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=49009&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=49009&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=49009&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=49009&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=49009&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=49009&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=49009&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=49009&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=49009&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=49009&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=49009&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=49009&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=49009&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=49009&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=49009&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=49009&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=49009&r=mysqlcfg

Reply via email to