#20840 [Opn->Bgs]: Command line mysql_connect Segmentation fault
ID: 20840
Updated by: georg@php.net
Reported By: rb512c@motorola.com
-Status: Open
+Status: Bogus
Bug Type: Reproducible crash
Operating System: Solaris 8
PHP Version: 4.2.3
New Comment:
it's defintely not an error in php, it's a libmysql problem (bogus).
I'll send a mail to bugs@lists.mysql.com and keep you up-to-date.
Previous Comments:
------------------------------------------------------------------------
[2002-12-06 12:53:03] rb512c@motorola.com
Thanks Georg!!! Compiling without the --with-mysql got me what I
needed.
However, I am curious what the problem was. Since this works from the
webpage and not from the command line. I do not belive that there is a
problem with the permissions on the charset (Index) file. Nor do I
believe it is corrupt...tried one that worked on a (MUCH) older version
of php.
Also...I did not try the latest CVS copy but am curious if there was a
fix in it for this problem?
Thanks for your help.
------------------------------------------------------------------------
[2002-12-06 03:14:32] georg@php.net
Looks like your charset files are corrupted or have wrong permissions.
If you don't need charset support, try to use the embedded libmysql
(you don't have to specify --with-mysql for that)
------------------------------------------------------------------------
[2002-12-05 19:32:31] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php4-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php4-win32-latest.zip
------------------------------------------------------------------------
[2002-12-05 16:10:27] rb512c@motorola.com
I have a new machine (ultra 60 solaris 8) that is running php 4.2.3 and
mysql 3.23.52.
If I run a simple mysql_connect to the database through apache (web
page) it works just fine. But if I run the same file with the command
line php, I get a:
Segmentation Fault(coredump)
If I gdb the core file I find that it failed in read_charset_index ()
(gdb) bt
#0 0xf535c in read_charset_index ()
#1 0xf5d08 in get_charset ()
#2 0xee7cc in mysql_real_connect ()
#3 0x4383c in php_mysql_do_connect (ht=2008792, return_value=0x1e1bd8,
this_ptr=0x0, return_value_used=0, persistent=0) at
php_mysql.c:684
#4 0x439e4 in zif_mysql_connect (ht=3, return_value=0x1e1bd8,
this_ptr=0x0,
return_value_used=1) at php_mysql.c:736
#5 0xe6f4c in execute ()
#6 0xc820c in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at zend.c:812
#7 0x2f2f0 in php_execute_script (primary_file=0xffbef3d0) at
main.c:1383
#8 0x2c7f0 in main (argc=2, argv=0xffbef45c) at cgi_main.c:778
(gdb)
If I truss the program, I see the same thing:
open64("/usr/local/mysql/share/mysql/charsets/Index", O_RDONLY) = 6
Incurred fault #6, FLTBOUNDS %pc = 0x000F535C
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000008
Received signal #11, SIGSEGV [default]
siginfo: SIGSEGV SEGV_MAPERR addr=0x00000008
*** process killed ***
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20840&edit=1
Thread (5 messages)