5 messages in com.mysql.lists.perlconnect with dbi:mysql crashes Perl| From | Sent On | Attachments |
|---|---|---|
| Roman Maeder | 26 Jun 1999 07:50 | |
| Jochen Wiedmann | 26 Jun 1999 09:30 | |
| Michael Widenius | 28 Jun 1999 21:12 | |
| Roman Maeder | 30 Jun 1999 12:42 | |
| Michael Widenius | 30 Jun 1999 13:03 |
| Subject: | connect with dbi:mysql crashes Perl![]() |
|---|---|
| From: | Michael Widenius (mon...@monty.pp.sci.fi) |
| Date: | 06/28/1999 09:12:46 PM |
| List: | com.mysql.lists.perl |
"Roman" == Roman Maeder <mae...@mathconsult.ch> writes:
Roman> I just installed the latest mysql-3.22.23b-sun-sunos4.1.4-sparc Roman> binary distribution, then DBI-1.11 and now Msql-Mysql-modules-1.2200.
Roman> Running a Perl script that connects to mysqld crashes Perl 5.00404 Roman> (this is all under SunOS 4.1.4), for example here is dbimon:
csh> dbx /usr/bin/perl
Roman> (dbx) run /usr/local/bin/dbimon dbi:mysql:test username password
Roman> Running: /usr/bin/perl /usr/local/bin/dbimon dbi:mysql:test username
password
Roman> Can't open trace file : No such file or directory DBI 1.11-nothread
dispatch trace level set to 2
Roman> Note: perl is running without the recommended perl -w option
-> DBI->connect(dbi:mysql:test, username, password)
-> DBI->install_driver(mysql) for perl=5.00404 pid=14174 ruid=1611 euid=1611
Roman> install_driver: DBD::mysql loaded (version 2.0400)
Roman> <- install_driver= DBI::dr=HASH(0x179a60)
-> connect for DBD::mysql::dr (DBI::dr=HASH(0x179a60)~0x2eec68 'test' 'username'
'password' HASH(0x2a805c))
imp_dbh-> connect: dsn = test, uid = username, pwd = password
imp_dbh-> MyLogin: dbname = test, uid = username, pwd = password,host = NULL,
port = NULL
imp_dbh-> MyConnect: host = NULL, port = 0, uid = username, pwd = password
Roman> signal SEGV (segmentation violation) in etext at 0xef7276d4
Roman> etext-0x10978aa4: ld [%i0 + 428], %o1
Roman> (dbx) where Roman> etext() at 0xef7276d4 Roman> etext() at 0xef71d0f4 Roman> etext() at 0xef71d60c Roman> etext() at 0xef71d68c Roman> etext() at 0xef7226a4 Roman> Perl_pp_entersub() at 0x4123c Roman> Perl_runops() at 0x3b518 Roman> perl_call_sv() at 0x59d4 Roman> etext() at 0xef748ccc Roman> Perl_pp_entersub() at 0x4123c Roman> Perl_runops() at 0x3b518 Roman> perl_run() at 0x4eec Roman> main() at 0x2334
Roman> I compiled DBD:mysql with acc, Sun's old ANSI compiler (for the only Roman> reason that this compiler was used a few year ago to compile Perl itself, Roman> so I am pretty much stick with it).
Roman> There was one glitch when I compiled the module. mysql/include/mysql.h Roman> contains a use of "long long", which this compiler does not understand. Roman> After adding the switch -DNO_CLIENT_LONG_LONG to the Makefile, the Roman> module compiled fine, but everytime DBI->connect("dbi:mysql:....") is Roman> invoked, Perl silently segfaults.
Roman> Does anyone have any ideas or suggestions? The mysql server and the Roman> precompiled binaries such as mysql, mysqladmin etc. themselves work fine, Roman> so it looks like something in the C code of DBD:mysql.
Roman> Roman Maeder
Hi!
Note that if you are using a binary MySQL distribution which is compiled with a compiler that has longlong, the above -DNO_CLIENT_LONG_LONG will crash your client!
You have to:
a) Recompile the mysql client library with your current compiler
or
b) Recompile the modules with gcc.
Regards, Monty




