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

 ID:                 43082
 Comment by:         niv at tra dot cx
 Reported by:        php at danielknell dot co dot uk
 Summary:            PHP exits without output on selecting null values
 Status:             No Feedback
 Type:               Bug
 Package:            ODBC related
 Operating System:   fedora7
 PHP Version:        5.2.4
 Block user comment: N
 Private report:     N

 New Comment:

There seems to be at least a temporary solution, which is to uninstall
the patch 

odbc-64bits-len.patch


Previous Comments:
------------------------------------------------------------------------
[2009-12-08 14:05:03] zvika at zend dot com

Got this happening on Redhat5.4 64bit with Zend Server 4.0.6 PHP 5.2.11,
unixODBC-2.2.11-7.1, mysql-connector-odbc-3.51.26r1127-1.el5



MySQL schema:

CREATE TABLE `test_null` (

  `col1` char(5) default NULL,

  `col2` char(20) default NULL

) ENGINE=MyISAM DEFAULT CHARSET=latin1;



INSERT INTO `test_null` VALUES ('AA','AA1'),('BB',NULL);



Ran a simple PHP script to select values using odbc_connect(DSN) +
odbc_exec(select)



Apache crashed on odbc_fetch_array() with core dump, I followed php.net
recommendation for debugging and here is the summary:



full backtrace up to first "execute" (frame 11)



(gdb) bt full

#0  0x00002b47dc9d246e in malloc_consolidate () from /lib64/libc.so.6

No symbol table info available.

#1  0x00002b47dc9d4a1a in _int_malloc () from /lib64/libc.so.6

No symbol table info available.

#2  0x00002b47dc9d6bee in malloc () from /lib64/libc.so.6

No symbol table info available.

#3  0x00002b47dca48094 in backtrace_symbols () from /lib64/libc.so.6

No symbol table info available.

#4  0x00002b47f716f24a in print_backtrace () at ZendExtUtil.c:57

        array = {0x2b47f716f23a, 0x2b47f716f2d5, 0x2b47dc9922d0,
0x2b47dc9de06b, 0x2b47e7186608,

  0x2b47f228ddfe, 0x2b47e71c0ce2, 0x2b47e71bfc5c, 0x2b47fcacb842,
0x2b47fd2ea879}

        size = 10

        strings = <value optimized out>

#5  0x00002b47f716f2d5 in segvwait () at ZendExtUtil.c:383

No locals.

#6  <signal handler called>

No symbol table info available.

#7  0x00002b47dc9de06b in memcpy () from /lib64/libc.so.6

No symbol table info available.

#8  0x00002b47e7186608 in _estrndup (s=0x2b47fdf1da20 "AA1",
length=<value optimized out>)

    at /php-5.2.11/Zend/zend_alloc.c:2444

        p = 0x2b47fdff1fe8 "\220?&#1505;&#8206;G+"

#9  0x00002b47f228ddfe in ?? () from
/usr/local/zend/lib/php_extensions/odbc.so

No symbol table info available.

#10 0x00002b47e71c0ce2 in zend_do_fcall_common_helper_SPEC
(execute_data=0x7fffb2d46fb0)

    at /php-5.2.11/Zend/zend_vm_execute.h:200

        return_reference = 0 '\0'

        opline = (zend_op *) 0x2b47f89fbf60

        original_return_value = <value optimized out>

        current_scope = (zend_class_entry *) 0x0

        current_this = (zval *) 0x0

        return_value_used = 2097152

        should_change_scope = 0 '\0'

#11 0x00002b47e71bfc5c in execute (op_array=0x2b47fdf1d228) at
/php-5.2.11/Zend/zend_vm_execute.h:92

        execute_data = {opline = 0x2b47f89fbf60, function_state =
{function_symbol_table = 0x3,

    function = 0x2b47f85a6d20, reserved = {0x2b47dac9cd15,
0x2b4700000001, 0x0, 0x23}}, fbc = 0x0,

  op_array = 0x2b47fdf1d228, object = 0x0, Ts = 0x7fffb2d46f50, CVs =
0x7fffb2d46f20,

  original_in_execution = 0 '\0', symbol_table = 0x2b47e7780308,
prev_execute_data = 0x0,

  old_error_reporting = 0x0}

...

...



(gdb) frame 11

#11 0x00002b47e71bfc5c in execute (op_array=0x2b47fdf1d228) at
/php-5.2.11/Zend/zend_vm_execute.h:92

92      /php-5.2.11/Zend/zend_vm_execute.h: No such file or directory.

        in /php-5.2.11/Zend/zend_vm_execute.h

                

(gdb) print (char
*)(executor_globals.function_state_ptr->function)->common.function_name

$1 = 0x2b47f228fba4 "odbc_fetch_array"

(gdb)



Is there anything I can run on the machine / Core dump to give you more
information?



Thanks

Zvika

------------------------------------------------------------------------
[2007-11-02 01:00:01] php-bugs at lists dot php dot net

No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".

------------------------------------------------------------------------
[2007-10-25 13:42:57] [email protected]

You need to compile PHP with --enable-debug set in your configure line
to get an useful backtrace.

------------------------------------------------------------------------
[2007-10-25 13:41:41] php at danielknell dot co dot uk

Program received signal SIGSEGV, Segmentation fault.

[Switching to Thread 46912496243712 (LWP 7734)]

0x00000000005aa9da in _zend_hash_add_or_update ()

(gdb) bt

#0  0x00000000005aa9da in _zend_hash_add_or_update ()

#1  0x00002aaab139a6d7 in ?? () from /usr/lib64/php/modules/odbc.so

#2  0x00000000005cc792 in ?? ()

#3  0x00000000005bd94c in execute ()

#4  0x000000000059e6a3 in zend_execute_scripts ()

#5  0x000000000055eb78 in php_execute_script ()

#6  0x000000000061e966 in main ()

------------------------------------------------------------------------
[2007-10-25 13:24:11] [email protected]

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.



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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=43082


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

Reply via email to