perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 28.02.2003 23:38:14 von Marc Prewitt

When using a threaded version of perl, I'm getting a segmentation fault
when I run any of the tests. I've tested this with the 5.8.0 w/out
threads and the tests pass fine.

Here's a trace of the fault:

bohemia /home/src/siteperl/.cpan/5.8.0t/build/DBD-mysql-2.1025 !# gdb
/opt/perl/5.8.0t/bin/perl core
GNU gdb 5.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "sparc-sun-solaris2.8"...
Core was generated by `/opt/perl/5.8.0t/bin/perl t/00base.t'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libdl.so.1...done.
Loaded symbols for /usr/lib/libdl.so.1
Reading symbols from /usr/lib/libm.so.1...done.
Loaded symbols for /usr/lib/libm.so.1
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libpthread.so.1...done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/lib/libc.so.1...done.
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libmp.so.2...done.
Loaded symbols for /usr/lib/libmp.so.2
Reading symbols from /usr/lib/libaio.so.1...done.
Loaded symbols for /usr/lib/libaio.so.1
Reading symbols from
/usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1...done.
Loaded symbols for /usr/platform/SUNW,Sun-Blade-1000/lib/libc_psr.so.1
Reading symbols from /usr/lib/libthread.so.1...done.
Loaded symbols for /usr/lib/libthread.so.1
Reading symbols from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DB
I/DBI.so...done.
Loaded symbols for
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/
DBI.so
Reading symbols from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DB
D/mysql/mysql.so...done.
Loaded symbols for
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBD/
mysql/mysql.so
Reading symbols from /usr/local/lib/mysql/libmysqlclient.so.10...done.
Loaded symbols for /usr/local/lib/mysql/libmysqlclient.so.10
Reading symbols from /usr/local/lib/libz.so...done.
Loaded symbols for /usr/local/lib/libz.so
Reading symbols from /usr/lib/libcrypt_i.so.1...done.
Loaded symbols for /usr/lib/libcrypt_i.so.1
Reading symbols from /usr/lib/libgen.so.1...done.
Loaded symbols for /usr/lib/libgen.so.1
Reading symbols from /usr/lib/libgcc_s.so.1...done.
Loaded symbols for /usr/lib/libgcc_s.so.1
#0 0xff029f34 in XS_DBD__mysql__dr_discon_all_ ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBD/mysql/mysql
..so
(gdb) bt
#0 0xff029f34 in XS_DBD__mysql__dr_discon_all_ ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBD/mysql/mysql
..so
#1 0xff05dc04 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#2 0x00082674 in Perl_pp_entersub ()
#3 0x0007aa94 in Perl_runops_standard ()
#4 0x00029dec in S_call_body ()
#5 0x00029b34 in Perl_call_sv ()
#6 0x0002d2d0 in S_call_list_body ()
#7 0x0002cea0 in Perl_call_list ()
#8 0x00026de0 in perl_destruct ()
#9 0x00025c30 in main ()

It's happening after the 'exit 0' in t/00base.t. It also happens in every
other test script as the script tries to do a dbi login. Here's a sample
from t/40listfields.t

Loaded symbols for /usr/lib/libgcc_s.so.1
#0 0xff02a220 in XS_DBD__mysql__db__login ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBD/mysql/mysql
..so
(gdb) bt
#0 0xff02a220 in XS_DBD__mysql__db__login ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBD/mysql/mysql
..so
#1 0x00082674 in Perl_pp_entersub ()
#2 0x0007aa94 in Perl_runops_standard ()
#3 0x00029dec in S_call_body ()
#4 0x000298c8 in Perl_call_sv ()
#5 0xff05de28 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#6 0x00082674 in Perl_pp_entersub ()
#7 0x0007aa94 in Perl_runops_standard ()
#8 0x0002933c in S_run_body ()
#9 0x00028fac in perl_run ()
#10 0x00025c24 in main ()

I'm at the end of my debugging abilities in this arena. Any suggestions?

Thanks,
Marc Prewitt

------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2053@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 02.03.2003 17:01:49 von Jochen Wiedmann

Please, try to create a debugging version of the driver.
This is done as follows:

- Add the option OPTIMIZE=-g to "perl Makefile.PL"
- Create a statically linked perl by running

make perl

- Try to run that version, for example with

gdb
r perl -Iblib/arch -Iblib/lib t/00base.t


Regards,

Jochen

------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2056@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 02.03.2003 17:01:49 von Jochen Wiedmann

Please, try to create a debugging version of the driver.
This is done as follows:

- Add the option OPTIMIZE=-g to "perl Makefile.PL"
- Create a statically linked perl by running

make perl

- Try to run that version, for example with

gdb
r perl -Iblib/arch -Iblib/lib t/00base.t


Regards,

Jochen

------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2056@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 03.03.2003 18:41:40 von Marc Prewitt

Here's what I get:

bohemia /home/src/siteperl/.cpan/5.8.0t/build/DBD-mysql-2.1025 !# gdb
/opt/perl/5.8.0t/bin/perl
GNU gdb 5.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "sparc-sun-solaris2.8"...
(gdb) r -Iblib/arch -Iblib/lib t/00base.t
Starting program: /export/opt/perl/5.8.0t/bin/perl -Iblib/arch -Iblib/lib
t/00base.t
[New LWP 1]
[New LWP 2]
[New LWP 3]
1..5
[New LWP 4]
[New LWP 5]
ok 1
ok 2
ok 3
ok 4
ok 5

Program received signal SIGSEGV, Segmentation fault.
0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x28eda8) at mysql.xsi:39
39 D_imp_drh(drh);
(gdb) bt
#0 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x28eda8) at mysql.xsi:39
#1 0xff05dc04 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#2 0x00082674 in Perl_pp_entersub ()
#3 0x0007aa94 in Perl_runops_standard ()
#4 0x00029dec in S_call_body ()
#5 0x00029b34 in Perl_call_sv ()
#6 0x0002d2d0 in S_call_list_body ()
#7 0x0002cea0 in Perl_call_list ()
#8 0x00026de0 in perl_destruct ()
#9 0x00025c30 in main ()

Jochen Wiedmann wrote:
>
> Please, try to create a debugging version of the driver.
> This is done as follows:
>
> - Add the option OPTIMIZE=-g to "perl Makefile.PL"
> - Create a statically linked perl by running
>
> make perl
>
> - Try to run that version, for example with
>
> gdb
> r perl -Iblib/arch -Iblib/lib t/00base.t
>
> Regards,
>
> Jochen
>
> ------------------------------------------------------------ ---------
> Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> posting. To request this thread, e-mail msql-mysql-modules-thread2056@lists.mysql.com
>
> To unsubscribe, send a message to the address shown in the
> List-Unsubscribe header of this message. If you cannot see it,
> e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2063@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 03.03.2003 18:41:40 von Marc Prewitt

Here's what I get:

bohemia /home/src/siteperl/.cpan/5.8.0t/build/DBD-mysql-2.1025 !# gdb
/opt/perl/5.8.0t/bin/perl
GNU gdb 5.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for
details.
This GDB was configured as "sparc-sun-solaris2.8"...
(gdb) r -Iblib/arch -Iblib/lib t/00base.t
Starting program: /export/opt/perl/5.8.0t/bin/perl -Iblib/arch -Iblib/lib
t/00base.t
[New LWP 1]
[New LWP 2]
[New LWP 3]
1..5
[New LWP 4]
[New LWP 5]
ok 1
ok 2
ok 3
ok 4
ok 5

Program received signal SIGSEGV, Segmentation fault.
0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x28eda8) at mysql.xsi:39
39 D_imp_drh(drh);
(gdb) bt
#0 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x28eda8) at mysql.xsi:39
#1 0xff05dc04 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#2 0x00082674 in Perl_pp_entersub ()
#3 0x0007aa94 in Perl_runops_standard ()
#4 0x00029dec in S_call_body ()
#5 0x00029b34 in Perl_call_sv ()
#6 0x0002d2d0 in S_call_list_body ()
#7 0x0002cea0 in Perl_call_list ()
#8 0x00026de0 in perl_destruct ()
#9 0x00025c30 in main ()

Jochen Wiedmann wrote:
>
> Please, try to create a debugging version of the driver.
> This is done as follows:
>
> - Add the option OPTIMIZE=-g to "perl Makefile.PL"
> - Create a statically linked perl by running
>
> make perl
>
> - Try to run that version, for example with
>
> gdb
> r perl -Iblib/arch -Iblib/lib t/00base.t
>
> Regards,
>
> Jochen
>
> ------------------------------------------------------------ ---------
> Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> posting. To request this thread, e-mail msql-mysql-modules-thread2056@lists.mysql.com
>
> To unsubscribe, send a message to the address shown in the
> List-Unsubscribe header of this message. If you cannot see it,
> e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2063@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 04.03.2003 14:43:06 von Marc Prewitt

On Mon, 3 Mar 2003, Jochen Wiedmann wrote:

>
> Hi, Marc,
>
> Quoting Marc Prewitt :
>
>
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
> > cv=0x28eda8) at mysql.xsi:39
> > 39 D_imp_drh(drh);
>
> what is the value of drh at that point? NULL?
>
> Which version of DBI are you using?

1.34

>
> Could you please repeat the running of gdb with DBI_TRACE=2?
>

(gdb) r -Iblib/lib -Iblib/arch t/00base.t
Starting program: /export/opt/perl/5.8.0t/bin/perl -Iblib/lib -Iblib/arch
t/00base.t
[New LWP 1]
[New LWP 2]
[New LWP 3]
1..5
[New LWP 4]
[New LWP 5]
DBI 1.34-ithread dispatch trace level set to 2
Note: perl is running without the recommended perl -w option
ok 1
ok 2
ok 3
-> DBI->install_driver(mysql) for solaris perl=5.008 pid=18326 ruid=0
euid=0
install_driver: DBD::mysql version 2.1025 loaded from
blib/lib/DBD/mysql.pm
<- install_driver= DBI::dr=HASH(0x28a580)
ok 4
<- FETCH= '2.1025' ('Version' from cache) at 00base.t line 42
ok 5
-- DBI::END
-> disconnect_all for DBD::mysql::dr (DBI::dr=HASH(0x28a580)~0x29d144)
thr#123a50

Program received signal SIGSEGV, Segmentation fault.
0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x2a5edc) at mysql.xsi:42
42 D_imp_drh(drh);

(gdb) print drh
$1 = (SV *) 0x29d0f0

(gdb) print drh->sv_any
$2 = (void *) 0x152590

(gdb) print drh->sv_refcnt
$3 = 1

(gdb) print drh->sv_flags
$4 = 524291

(gdb) bt
#0 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x2a5edc) at mysql.xsi:42
#1 0xff05e084 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#2 0x00082674 in Perl_pp_entersub ()
#3 0x0007aa94 in Perl_runops_standard ()
#4 0x00029dec in S_call_body ()
#5 0x00029b34 in Perl_call_sv ()
#6 0x0002d2d0 in S_call_list_body ()
#7 0x0002cea0 in Perl_call_list ()
#8 0x00026de0 in perl_destruct ()
#9 0x00025c30 in main ()



------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2065@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.

Re: perl 5.8.0 with threads on solaris failure w/mysql 3.23.55

am 04.03.2003 14:43:06 von Marc Prewitt

On Mon, 3 Mar 2003, Jochen Wiedmann wrote:

>
> Hi, Marc,
>
> Quoting Marc Prewitt :
>
>
> > Program received signal SIGSEGV, Segmentation fault.
> > 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
> > cv=0x28eda8) at mysql.xsi:39
> > 39 D_imp_drh(drh);
>
> what is the value of drh at that point? NULL?
>
> Which version of DBI are you using?

1.34

>
> Could you please repeat the running of gdb with DBI_TRACE=2?
>

(gdb) r -Iblib/lib -Iblib/arch t/00base.t
Starting program: /export/opt/perl/5.8.0t/bin/perl -Iblib/lib -Iblib/arch
t/00base.t
[New LWP 1]
[New LWP 2]
[New LWP 3]
1..5
[New LWP 4]
[New LWP 5]
DBI 1.34-ithread dispatch trace level set to 2
Note: perl is running without the recommended perl -w option
ok 1
ok 2
ok 3
-> DBI->install_driver(mysql) for solaris perl=5.008 pid=18326 ruid=0
euid=0
install_driver: DBD::mysql version 2.1025 loaded from
blib/lib/DBD/mysql.pm
<- install_driver= DBI::dr=HASH(0x28a580)
ok 4
<- FETCH= '2.1025' ('Version' from cache) at 00base.t line 42
ok 5
-- DBI::END
-> disconnect_all for DBD::mysql::dr (DBI::dr=HASH(0x28a580)~0x29d144)
thr#123a50

Program received signal SIGSEGV, Segmentation fault.
0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x2a5edc) at mysql.xsi:42
42 D_imp_drh(drh);

(gdb) print drh
$1 = (SV *) 0x29d0f0

(gdb) print drh->sv_any
$2 = (void *) 0x152590

(gdb) print drh->sv_refcnt
$3 = 1

(gdb) print drh->sv_flags
$4 = 524291

(gdb) bt
#0 0xfe7d9f0c in XS_DBD__mysql__dr_discon_all_ (my_perl=0x123a50,
cv=0x2a5edc) at mysql.xsi:42
#1 0xff05e084 in XS_DBI_dispatch ()
from
/opt/siteperl/5.8.0/lib/site_perl/5.8.0/sun4-solaris-thread- multi-64int/auto/DBI/DBI.so
#2 0x00082674 in Perl_pp_entersub ()
#3 0x0007aa94 in Perl_runops_standard ()
#4 0x00029dec in S_call_body ()
#5 0x00029b34 in Perl_call_sv ()
#6 0x0002d2d0 in S_call_list_body ()
#7 0x0002cea0 in Perl_call_list ()
#8 0x00026de0 in perl_destruct ()
#9 0x00025c30 in main ()



------------------------------------------------------------ ---------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail msql-mysql-modules-thread2065@lists.mysql.com

To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail msql-mysql-modules-unsubscribe@lists.mysql.com instead.