Skip Menu |

This queue is for tickets about the DBI CPAN distribution.

Report information
The Basics
Id: 77523
Status: rejected
Priority: 0/
Queue: DBI

People
Owner: Nobody in particular
Requestors: jsantala [...] acev.fi
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.621
Fixed in: (no value)



Subject: Intermittent deadlock on 35thrclone.t
Old RHEL5.4 server needed new non-vendor DBI for SQLite, ran the test pattern about 10 times, having 35thrclone.t hang twice: t/zvp_35thrclone.t .............. 1..20 ok 1 - use DBI; ok 2 - ... assignment of neat_maxlen was successful ok 3 - The object isa DBI::db ok 4 - ... DBI::neat_maxlen still holding its value ok 5 - The object isa DBI::db ok 6 - ... new $dbh is not the same instance as $dbh_parent ok 7 ok 8 - ... DBI::neat_maxlen still holding its value ok 9 - The object isa DBI::db ok 10 - ... new $dbh is not the same instance as $dbh_parent ok 11 ok 12 - ... DBI::neat_maxlen still holding its value ok 13 - The object isa DBI::db ok 14 - ... new $dbh is not the same instance as $dbh_parent ok 15 ok 16 - ... DBI::neat_maxlen still holding its value ok 17 - The object isa DBI::db ok 18 - ... new $dbh is not the same instance as $dbh_parent ok 19 First time was with "t/zvxgp_35thrclone.t ............ 1/20". (gdb) where #0 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x0000003584e08aca in _L_lock_1034 () from /lib64/libpthread.so.0 #2 0x0000003584e0898c in pthread_mutex_lock () from /lib64/ libpthread.so.0 #3 0x00002ad648ddf002 in Perl_ithread_hook () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #4 0x00000035856386cc in perl_destruct () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #5 0x00002ad648ddfbcb in ?? () from /usr/lib64/perl5/5.8.8/x86_64- linux-thread-multi/auto/threads/threads.so #6 0x00002ad648ddfde3 in Perl_ithread_join () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #7 0x00002ad648ddff13 in XS_threads_join () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #8 0x0000003585690a96 in Perl_pp_entersub () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #9 0x000000358568a33e in Perl_runops_standard () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #10 0x000000358563808a in perl_run () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #11 0x00000000004017bc in main () [root@www DBI-1.621]# perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.18-128.1.10.el5, archname=x86_64-linux- thread-multi uname='linux ls20-bc2-13.build.redhat.com 2.6.18-128.1.10.el5 #1 smp wed apr 29 13:53:08 edt 2009 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,- D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer- size=4 -m64 -mtune=generic -Dversion=5.8.8 -Dmyhostname=localhost - Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. - Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64 /lib64 /usr/ lib64 -Dprivlib=/usr/lib/perl5/5.8.8 -Dsitelib=/usr/lib/perl5/ site_perl/5.8.8 -Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8 -Darchlib=/ usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi -Dsitearch=/usr/lib64/ perl5/site_perl/5.8.8/x86_64-linux-thread-multi -Dvendorarch=/usr/lib64/ perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi -Darchname=x86_64- linux-thread-multi -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib - Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun - Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/ less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto - Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto - Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions - fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe - Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-44)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc', ldflags ='' libpth=/usr/local/lib64 /lib64 /usr/lib64 libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread - lc perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.5' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E - Wl,-rpath,/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,- D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer- size=4 -m64 -mtune=generic' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Jul 2 2009 05:49:38 @INC: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 . Have not tested with different versions of DBI or perl.
From: jsantala [...] acev.fi
Possibly an issue in perl, but the test should probably still somehow pass or have a workaround. Little more analysis: (gdb) info thread 4 Thread 0x43cb2940 (LWP 18566) 0x0000003584e077e5 in pthread_join () from /lib64/libpthread.so.0 3 Thread 0x41a74940 (LWP 18568) 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 2 Thread 0x432b1940 (LWP 18569) 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 * 1 Thread 0x2ad6457ec250 (LWP 18562) 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 Thread 1 and 2 are waiting on thread 3's mutex. Thread 3 is waiting on thread 1's mutex. Location on other threads: Thread 2 (Thread 0x432b1940 (LWP 18569)): #0 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x0000003584e08aca in _L_lock_1034 () from /lib64/libpthread.so.0 #2 0x0000003584e0898c in pthread_mutex_lock () from /lib64/ libpthread.so.0 #3 0x00002ad648de0434 in Perl_ithread_run () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #4 0x0000003584e064a7 in start_thread () from /lib64/libpthread.so.0 #5 0x00000035842d3c2d in clone () from /lib64/libc.so.6 Thread 3 (Thread 0x41a74940 (LWP 18568)): #0 0x0000003584e0d174 in __lll_lock_wait () from /lib64/libpthread.so.0 #1 0x0000003584e08aca in _L_lock_1034 () from /lib64/libpthread.so.0 #2 0x0000003584e0898c in pthread_mutex_lock () from /lib64/ libpthread.so.0 #3 0x00002ad648ddebee in ithread_mg_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/auto/threads/threads.so #4 0x00000035856a39c1 in Perl_mg_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #5 0x00000035856a3e47 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #6 0x00000035856a51c7 in Perl_rvpv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #7 0x00000035856a3d35 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #8 0x00000035856a41e0 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #9 0x00000035856a41e0 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #10 0x00000035856a41e0 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #11 0x00000035856a4a91 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #12 0x00000035856a4a39 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #13 0x00000035856a4a39 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #14 0x00000035856a53dc in Perl_gp_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #15 0x00000035856a44f5 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #16 0x0000003585686b7a in Perl_he_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #17 0x00000035856a4358 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #18 0x00000035856a45c6 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #19 0x00000035856a53dc in Perl_gp_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #20 0x00000035856a44f5 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #21 0x0000003585686b7a in Perl_he_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #22 0x00000035856a4358 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #23 0x00000035856a44c2 in Perl_sv_dup () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #24 0x00000035856a6069 in perl_clone () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #25 0x00002ad648de09e4 in Perl_ithread_create () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #26 0x00002ad648de0ecf in XS_threads_new () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/auto/threads/threads.so #27 0x0000003585690a96 in Perl_pp_entersub () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #28 0x000000358568a33e in Perl_runops_standard () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #29 0x00000035856376f0 in Perl_call_sv () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #30 0x00002ad648de02f5 in Perl_ithread_run () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #31 0x0000003584e064a7 in start_thread () from /lib64/libpthread.so.0 #32 0x00000035842d3c2d in clone () from /lib64/libc.so.6 Thread 4 (Thread 0x43cb2940 (LWP 18566)): #0 0x0000003584e077e5 in pthread_join () from /lib64/libpthread.so.0 #1 0x00002ad648ddfc9e in Perl_ithread_join () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #2 0x00002ad648ddff13 in XS_threads_join () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #3 0x0000003585690a96 in Perl_pp_entersub () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #4 0x000000358568a33e in Perl_runops_standard () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/CORE/libperl.so #5 0x00000035856376f0 in Perl_call_sv () from /usr/lib64/perl5/5.8.8/ x86_64-linux-thread-multi/CORE/libperl.so #6 0x00002ad648de02f5 in Perl_ithread_run () from /usr/lib64/ perl5/5.8.8/x86_64-linux-thread-multi/auto/threads/threads.so #7 0x0000003584e064a7 in start_thread () from /lib64/libpthread.so.0 #8 0x00000035842d3c2d in clone () from /lib64/libc.so.6
Thanks for the report. I've not had other reports of this (and obviously the DBI gets a lot of installations, e.g., http://matrix.cpantesters.org/?dist=DBI%201.622;os=linux;reports=1) so I can only assume that it's a problem with your system libraries and/or perl configuration. Perhaps start by making sure your system is fully patched.