Smoke [5.9.0] 25365 FAIL(m) openbsd 3.6 (i386/1 cpu)
Automated smoke report for 5.9.0 patch 25365 accognoscere.homeunix.org: AMD Athlon(TM) XP 1800+ (AuthenticAMD 686-class) (i386/1 cpu) onopenbsd - 3.6 using cc version 2.95.3 20010125 (prerelease, propolice) smoketime 3 minutes 1 seconds (average 22.625 seconds) Summary: FAIL(m) O = OK F = Failure(s), extended report at the bottom X = Failure(s) under TEST but not under harness ? = still running or test results not (yet) available Build failures during: - = unknown or N/A c = Configure, m = make, M = make (after miniperl), t = make test-prep 25365 Configuration (common) none --- - m - m - m - m - -Duse64bitint m - m - -Duseithreads m - m - -Duseithreads -Duse64bitint | | | +- PERLIO = perlio -DDEBUGGING | | +--- PERLIO = stdio -DDEBUGGING | +- PERLIO = perlio +--- PERLIO = stdio -- Report by Test::Smoke v1.19#716 running on perl 5.8.5 (Reporter v0.016 / Smoker v0.015)
managing many HTTP connections - recommendation wanted
Hi, I have to manage many parallel HTTP/HTTPS connections. My current implementation starts up a number of threads (300-500). Each thread handles one LWP::UserAgent. Then I use a queue to shift connection requests from the manager thread to the workers. Since Perl's thread implementation is rather memory consuming this is not the optimal solution. 500 threads is the maximum on my 1GB machine. Is there a better solution using asynchronous IO but providing the simplicity of LWP::UserAgent and supporting HTTP and HTTPS? Thanks, Torsten pgpbp5VyPauqX.pgp Description: PGP signature
Re: managing many HTTP connections - recommendation wanted
Torsten Foertsch wrote: Hi, I have to manage many parallel HTTP/HTTPS connections. My current implementation starts up a number of threads (300-500). Each thread handles one LWP::UserAgent. Then I use a queue to shift connection requests from the manager thread to the workers. Hello, I'm sorry, you have knocked on the wrong door. The p5p list is devoted to discussing the details of the Perl 5 implementation, not the uses to which it may be put. Please try three doors down at http://www.perlmonks.org/ and I'm sure you will receive all the help you need there. David.
[perl #37119] SelfLoader/fork() gotcha
# New Ticket Created by Nicholas Clark # Please include the string: [perl #37119] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37119 This is a bug report for perl from [EMAIL PROTECTED], generated with the help of perlbug 1.35 running under perl v5.8.5. - [Please enter your report here] This is definitely platform dependent - I can reproduce this on x86 Linux, but not x86 FreeBSD or OS X. fork and __DATA__ don't mix. I don't think that we document this anywhere. I don't know if we should, given the amount of documentation, but it is a subtle gotcha, and it had never occurred to me. The basic problem is with modules that lazily read from the DATA file handle, particularly if they read from another package's DATA file handle lazily, and on demand. DATA is implemented by the Perl 5 compiler leaving the program's file handle open if it encounters the __DATA__ token. All is fine and dandy, until you fork. At which point both processes now have a (buffered) DATA file handle pointing to the same kernel file descriptor. When one reads from DATA, the other's DATA handle moves. Underneath it. SelfLoader breaks. $ cat Demo.pm #!perl -w package Demo; sub import {}; use SelfLoader; @ISA = 'SelfLoader'; 1; __DATA__ sub hash { print pig-pen: $_[0]\n; } $ cat demo.pl #!perl -w use strict; use Demo; my $pid = fork(); sleep 2 if $pid; Demo::hash ($pid); $ perl demo.pl pig-pen: 0 Undefined subroutine Demo::hash at demo.pl line 8 I'm not sure if/how we can fix SelfLoader. I'm not sure where we should document this gotcha with DATA. Nicholas Clark [Please do not change anything below this line] - --- Flags: category=core severity=low --- Site configuration information for perl v5.8.5: Configured by root at Mon Oct 18 17:51:35 BST 2004. Summary of my perl5 (revision 5 version 8 subversion 5) configuration: Platform: osname=linux, osvers=2.4.21-4.elsmp, archname=i686-linux uname='linux switch.work.fotango.com 2.4.21-4.elsmp #1 smp fri oct 3 17:52:56 edt 2003 i686 i686 i386 gnulinux ' config_args='-Dprefix=/usr/local/perl-5.8.5 -Uinstallusrbinperl -des' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2', cppflags='-fno-strict-aliasing -pipe -I/usr/include/gdbm' ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-20)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib' Locally applied patches: --- @INC for perl v5.8.5: /usr/local/perl-5.8.5/lib/5.8.5/i686-linux /usr/local/perl-5.8.5/lib/5.8.5 /usr/local/perl-5.8.5/lib/site_perl/5.8.5/i686-linux /usr/local/perl-5.8.5/lib/site_perl/5.8.5 /usr/local/perl-5.8.5/lib/site_perl . --- Environment for perl v5.8.5: HOME=/home/nick LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/home/nick/bin:/usr/kerberos/bin:/usr/lib/ccache/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/sbin:/usr/sbin PERL_BADLANG (unset) SHELL=/bin/bash
Smoke [5.9.3] 25365 FAIL(F) bsd/os 4.1 (i386/1 cpu)
Automated smoke report for 5.9.3 patch 25365 fixit.xs4all.nl: Pentium II (i386/1 cpu) onbsd/os - 4.1 using cc version egcs-2.91.66 19990314 (egcs-1.1.2 release) smoketime 3 hours 56 minutes (average 1 hour 58 minutes) Summary: FAIL(F) O = OK F = Failure(s), extended report at the bottom X = Failure(s) under TEST but not under harness ? = still running or test results not (yet) available Build failures during: - = unknown or N/A c = Configure, m = make, M = make (after miniperl), t = make test-prep 25365 Configuration (common) none --- - F F - - -Duse64bitint O O - - | | | +- PERLIO = perlio -DDEBUGGING | | +--- PERLIO = stdio -DDEBUGGING | +- PERLIO = perlio +--- PERLIO = stdio Failures: (common-args) none [stdio] -Duse64bitint ../t/op/int.t...FAILED 11 [perlio] -Duse64bitint ../lib/Net/hostent.tFAILED 4-7 ../t/op/int.t...FAILED 11 -- Report by Test::Smoke v1.19_67 build 842 running on perl 5.00503 (Reporter v0.019 / Smoker v0.023)
[perl #37117] Math::Complex atan2 bug
# New Ticket Created by [EMAIL PROTECTED] # Please include the string: [perl #37117] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37117 This is a bug report for perl from [EMAIL PROTECTED], generated with the help of perlbug 1.35 running under perl v5.8.7. This bug is still present in 5.9.2. - [I just found out about perlbug. I hope this finally is the preferred method of reporting bugs. This one's really easy to fix (just apply the three line patch), but can be a real hassle if it isn't fixed. I have tried contacting the former module author (before Math::Complex went into the core), but the mail address of Mr. Lewart is no longer valid.] The syntax of using the atan2 routine is, generally: atan2(y, x) = atan(y/x). You will know that atan(0) = 0. (Since tan(0) = 0 = sin(0) / cos(0).) perl -MMath::Complex -e print atan2(0,1) prints '0' alright. (Which is, in fact atan(0/1).) perl -MMath::Complex -e print atan2(1,0) prints pi/2 alright. (Which is, in fact atan(1/0) and lim(x--inf) atan(x) is pi/2.) Now, in the complex plane, we get: perl -MMath::Complex -e print atan2(0,i) i/0: Division by zero. Died at c:/perl/perl58/lib/Math/Complex.pm line 1284. This is not correct. Obviously, 0/i is the same as 0/1 which is 0. Thus atan2(0,i) == atan2(0,1) == atan(0) == 0 At fault is the following code: sub atan2 { my ($z1, $z2, $inverted) = [at]_; my ($re1, $im1, $re2, $im2); if ($inverted) { ($re1, $im1) = ref $z2 ? [at]{$z2-cartesian} : ($z2, 0); ($re2, $im2) = [at]{$z1-cartesian}; } else { ($re1, $im1) = [at]{$z1-cartesian}; ($re2, $im2) = ref $z2 ? [at]{$z2-cartesian} : ($z2, 0); } if ($im2 == 0) { return CORE::atan2($re1, $re2) if $im1 == 0; return ($im1=0) * pip2 if $re2 == 0; } my $w = atan($z1/$z2); # !!! line 1284 my ($u, $v) = ref $w ? [at]{$w-cartesian} : ($w, 0); $u += pi if $re2 0; $u -= pit2 if $u pi; return cplx($u, $v); } In the last test case above, $inverted is set. Therefore, if $im2 = 0, the switched real and imaginary parts are used. But if that's not the case, the code at line 1284 is executed with the *unswitched* complex numbers $z1 and $z2. I suppose the author omitted something like ($z1, $z2) = ($z2, $z1) if $inverted; before line 1284. (The patch uses slightly different code.) I attached a patch which adds another if($inverted){}else{} block. It's a patch against the Math::Complex in 5.8.7, but I have verified that the version in the bleadperl is the same. I assume you want to add a test for any bugfix, but since I know nothing about perl's internal testing (and Complex.t in 5.9.2 is as ugly as it gets), I'll just include the simplest bit of code that tests the patch, provided Math::Complex was loaded: ($eps defined in Complex.t) my $res; eval {$res = atan2(0,i);}; print( ($@ or not abs($res) $eps ) ? 'not ok' : 'ok' ); diff -u follows: - --- Complex.pm 2005-04-01 11:43:02.0 +0200 +++ C:/perl/perl58/lib/Math/Complex.pm 2005-08-04 16:45:13.890625000 +0200 @@ -1281,7 +1281,13 @@ return CORE::atan2($re1, $re2) if $im1 == 0; return ($im1=0) * pip2 if $re2 == 0; } - my $w = atan($z1/$z2); + my $w; +if ($inverted) { +$w = atan($z2/$z1); +} +else { +$w = atan($z1/$z2); +} my ($u, $v) = ref $w ? @{$w-cartesian} : ($w, 0); $u += pi if $re2 0; $u -= pit2 if $u pi; - Steffen Mueller - --- Flags: category=core severity=medium --- Site configuration information for perl v5.8.7: Configured by builder at Mon Jun 6 13:36:05 2005. Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=MSWin32, osvers=5.0, archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended, useposix=true, d_sigaction=undef usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cl', ccflags ='-nologo -Gf -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DBUILT_BY_ACTIVESTATE -DNO_HASH_SEED -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX', optimize='-MD -Zi -DNDEBUG -O1', cppflags='-DWIN32' ccversion='12.00.8804', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10 ivtype='long', ivsize=4, nvtype='double', nvsize=8,
RE: Encode on EBCDIC patch( Doesn't Work)
Are you saying that the 4 byte string euro(ASCII hex 65 75 72 6F) is being stored as '/Ä,' (hex 2F C4 3E 2C) ? Can you post the verbose output from running the lib/DBM_Filter/t/encode.t test harness please? Not sure how different EBDCIC platforms are from Unix-land, but this is how you would run it on a Linux/Unix box. $ cd t $ ./TEST -v ../lib/DBM_Filter/t/encode.t Paul -Original Message- From: Sastry [mailto:[EMAIL PROTECTED] Sent: 08 September 2005 14:15 To: Dan Kogai Cc: Perl Porters 5 Subject: Re: Encode on EBCDIC patch( Doesn't Work) Hi Dan The patch you had provided calls $_ebcdic_coder-decode($str); and subsequenly calls my $octets = $enc-encode($string,$check); Do you think it is how it is supposed to call on EBCDIC platform? Seems like this is a work around But there is another test case(lib/DBM_Filter/t/encode.t) in the test suite that fails because of this encoding module Here is the snippet of that test case eval { $db1-Filter_Push('encode' = 'iso-8859-16') }; is $@, '', push an 'encode' filter (specify iso-8859-16) ; use charnames qw{:full}; StoreData(\%h1, { 'euro' = \N{EURO SIGN}, }); VerifyData(\%h2, { 'euro' = \xA4, }); The 'euro' gets stored as /Ä, instead of the 'euro' itself. Please check if there is a work round for this too or any pointers in the source code where there could be a fix for it! -Sastry On 8/24/05, Dan Kogai [EMAIL PROTECTED] wrote: Sastry and EBCDIC porters, On Aug 24, 2005, at 21:30 , Dan Kogai wrote: + sub _utf8_ebcdic($){ + my $str = shift; # UTF-8 + $str = # UTF-EBCDIC + $_ebcdic_coder-encode($str); + _utf8_on($str); # Dirty Trick + return $str; I'm not sure if this part works as advertised. The yet another patch below tries the different approach. The problem is that I know so little of UTF-EBCDIC and its implementation. I feel like building a ship in the bottle in the dark Dan the Encode Maintainer === RCS file: Encode.pm http://Encode.pm,v retrieving revision 2.11 diff -u -r2.11 Encode.pm http://Encode.pm --- Encode.pm http://Encode.pm 2005/08/05 10:58:25 2.11 +++ Encode.pm http://Encode.pm 2005/08/24 12:49:18 @@ -136,6 +136,27 @@ return Storable::dclone($obj); } +sub _ebcdic_utf8($); +sub _utf8_ebcdic($); + +if ($ON_EBCDIC){ + my %WHICH_EBCDIC = ( 176 = 'cp37', 95 = 'cp1047', 106 = 'posix-bc' ); + my $_ebcdic_coder = find_encoding($WHICH_EBCDIC{ord ^}); + sub _ebcdic_utf8($){ + my $str = shift; # UTF-EBCDIC + _utf8_off($str); # Dirty Trick + return # UTF-8 + $_ebcdic_coder-decode($str); + } + sub _utf8_ebcdic($){ + my $str = shift; # UTF-8 + $str = # EBCDIC + $_ebcdic_coder-encode($str); + return # UTF-EBCDIC; + find_encoding(Unicode)-decode($str); + } +} + sub encode($$;$) { my ($name, $string, $check) = @_; @@ -147,8 +168,12 @@ require Carp; Carp::croak(Unknown encoding '$name'); } + $string = _ebcdic_utf8($string) if $ON_EBCDIC; my $octets = $enc-encode($string,$check); - $_[1] = $string if $check and !($check LEAVE_SRC()); + if ($check and !($check LEAVE_SRC()) ){ + $string = _utf8_ebcdic($string); + $_[1] = $string; + } return $octets; } @@ -164,6 +189,7 @@ Carp::croak(Unknown encoding '$name'); } my $string = $enc-decode($octets,$check); + $string = _utf8_ebcdic($string) if $ON_EBCDIC; $_[1] = $octets if $check and !($check LEAVE_SRC()); return $string; } ___ To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre. http://uk.security.yahoo.com
__DATA__ and fcntl flags
In toke.c, in the part of code that sets the file descriptor for __DATA__, there is this chunk of code : #if defined(HAS_FCNTL) defined(F_SETFD) { const int fd = PerlIO_fileno(PL_rsfp); fcntl(fd,F_SETFD,fd = 3); } #endif The 3rd argument to fcntl() puzzles me. It's supposed to be a sum of flags, not a boolean value. Thus it doesn't look portable at all. On Linux and BSD it looks like this code tries to set O_WRONLY on the __DATA__ filehandle, which is obviously wrong (and won't succeed anyway.) My fcntl(2) manpage says : On Linux this command can only change the O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME, and O_NONBLOCK flags. What's the sensible thing to do ?
Re: __DATA__ and fcntl flags
I wrote: What's the sensible thing to do ? Ooh, Spider Boardman points to me that I misread F_SETFD as F_SETFL. I blame a friday afternoon and a hard week...
FW: [PATCH] Cwd::abs_path dies on win32 when used against non-exi stant file. This breaks Devel::Cover.
Title: FW: [PATCH] Cwd::abs_path dies on win32 when used against non-existant file. This breaks Devel::Cover. Not sure if this is the right thing to do, but I just sent this off about an error in Cwd on Win32. Yves -Original Message- From: Orton, Yves Sent: Friday, September 09, 2005 6:51 PM To: 'Ken Williams' Cc: 'Paul Johnson' Subject: [PATCH] Cwd::abs_path dies on win32 when used against non-existant file. This breaks Devel::Cover. Hi Ken, Cwd::abs_path uses its own logic to simulate the behaviour of the Win32 built in API call Win32::GetFullPathName(). By using its own logic it breaks compatibility between code using it on different OSes as on *nix it will be happy with a non-existant file and on Win32 it will die in the same situation. (It would be nice if Cwd used 'confess' and not 'carp' as the later hides the true source of the error: it took me a while to realize that Cwd was at fault and not the 'cover' script from the Devel::Cover distro.) By switching to using the built in API call the bug goes away. A similar patch should probably be applied in File::Spec. Anyway, the attached patch fixes the error. Cheers, Yves fix_abs_path_on_win32.patch Description: Binary data
DBM_Filter with encode() on EBCDIC fails
Hi I am using perl-5.8.6 on EBCDIC platform and I encounter a test case(lib/DBM_Filter/t/encode.t) failing The VerifyData sub routine expects the key as 'euro' where as on EBCDIC, I get the key as '/Ä,' can you explain me why this is happening? use strict; use warnings; use Carp; BEGIN { eval { require Encode; }; if ($@) { print 1..0 # Skip: Encode is not available\n; exit 0; } } require dbm_filter_util.pl; # use charnames qw{greek}; use Test::More tests = 26; BEGIN { use_ok('DBM_Filter') }; BEGIN { use_ok('SDBM_File') }; BEGIN { use_ok('Fcntl') }; unlink Op_dbmx*; END { unlink Op_dbmx*; } my %h1 = () ; my $db1 = tie(%h1, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ; eval { $db1-Filter_Push('encode' = 'iso-8859-16') }; is $@, '', push an 'encode' filter (specify iso-8859-16) ; use charnames qw{:full}; StoreData(\%h1, { 'euro' = \N{EURO SIGN}, }); undef $db1; { use warnings FATAL = 'untie'; eval { untie %h1 }; is $@, '', untie without inner references ; } # read the dbm file without the filter my %h2 = () ; my $db2 = tie(%h2, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ; ok $db2, tied to SDBM_File; VerifyData(\%h2, { 'euro' = \xA4, }); undef $db2; { use warnings FATAL = 'untie'; eval { untie %h2 }; is $@, '', untie without inner references ; }
Re: exempli gratia is e.g., eg., or eg--or free samples :-)
David Landgren wrote on Wed, 07 Sep 2005 18:13:22 +0200 in [EMAIL PROTECTED]: Following on from Steve Peters' id est is i.e. peeve: One ponders just how many peters one might (not) be discussing here? :-) (Hint: an apostrophe is *never* pronounced as anything whatsoever. How can an entire generation have forgetten this? See SW Rule #1.) http://www.mail-archive.com/perl5-porters@perl.org/msg89902.html FYI, Mr Peters's complaint there reads: Sorry, but this is a pet peeve. The proper abbreviation for id est is i.e., not ie. or ie. ARRRAGAGAFASD! Sorry, I feel better now. Attached is a patch to fix the included pod files. I was struck by one of my own: exempli gratia being abbreviated to eg or eg., rather than e.g. The obscure marketeering pun of pronouncing e.g. as free sample(s) to attract the instinctive penny pinchers notwithstanding, I was taught that one pronounces i.e. as that is, e.g. as for example. The truly perplexing phenomenon--those not living in glass houses might even venture to call it risible--is when people in extemporaneous speech pronounce these abbreviations aloud and letter by letter, saying ee gee, or aye ee. And I'm not talking about saying etcee in /etc/passwd. It's really rather peculiar, don't you think? I am hardly wishing to attempt to justify the use of Beg and ie. I use them, but this is more out of reflexive habit than conscious decision, for I believe Mark to be more right than otherwise about their dubious appropriateness in non-Latin documents. Hysterical porpoises needn't always be appeased, merely recognized. However, I *would* like to dispel(l) an apparent confusion regarding what punctuation--if any--must, may, can, and perhaps even should accompany these abbreviations. Vide infra^W^WSee below. +---+ | The bottom line is that standards vary, and orthographic(al) | | correctness becomes no more than an exercise in accepting and | | adhering to some particular standard. | +---+ All plumbed sources concurred that commas must follow these abbreviations, but what dots you should throw in depend on whom you cite. From heavy to light, three such standards are: (1) O'Reilly requires the heavy-handed double-dotted versions, i.e. and e.g., which to my mind are more trouble than they're worth. This one appears to be the treatment favored by American publishers. (2) Some authorities prefer single-dotted versions, ie. and eg., which do seem more cohesive to my eye. (3) Still others use no dots at all. Here I cite from the style guide currently used by _The_Economist_ magazine (but which they themselves yet call a newspaper): Use lower case for Bkg, Bkm, Blb (never Blbs), Bmph and other measures, and for Bie, Beg, which should both be followed by commas. When used with figures, these lower-case abbreviations should follow immediately, with no space (B11am, B4.30pm, B15kg, B35mm, B100mph, B78rpm), as should BAD and BBC (B76AD, B55BC), though they should be set in small capitals. Two abbreviations together, however, must be separated: B60m b/d. http://www.economist.com/research/styleGuide/index.cfm?page=673905 While I have personally come to prefer the tidier versions over those mandated by O'Reilly, I've certainly not always been of that bent, so historical writings may reflect not foolish inconsistency so much as different stages in the development of my current and as always unabashedly idiosyncratic preferences of personally proper punctuation. --tom A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines. With consistency a great soul has simply nothing to do. --Ralph Waldo Emerson
[perl #35427] reset coredumps pre 5.8.0
[nicholas - Thu May 12 14:52:46 2005]: This is a bug report for perl from [EMAIL PROTECTED], generated with the help of perlbug 1.35 running under perl v5.6.2. - [Please enter your report here] /Users/nick/Reference/5.6.2-g/bin/perl5.6.2-32 -MData::Dumper -e 'package Data::Dumper; reset' Bus error (gdb) where #0 0x0005a1d8 in Perl_sv_reset (s=0x129570 , stash=0x806fe0) at sv.c:5063 #1 0x000ad534 in Perl_pp_reset () at pp_ctl.c:1631 #2 0x000dd590 in Perl_runops_debug () at run.c:53 #3 0x0002114c in S_run_body (oldscope=1) at perl.c:1471 #4 0x00020a74 in perl_run (my_perl=0x300140) at perl.c:1393 #5 0x1c5c in main (argc=4, argv=0xb6c4, env=0xb6d8) at perlmain.c:52 Line 5063 is the middle line of: if (!*s) {/* reset ?? searches */ for (pm = HvPMROOT(stash); pm; pm = pm-op_pmnext) { pm-op_pmdynflags = ~PMdf_USED; } return; } I'm not convinced that gdb has the correct value of pm. It seems to have pm for the second iteration: (gdb) p pm $7 = (PMOP *) 0xa7f2c (gdb) p stash-sv_any-xhv_pmroot $8 = (PMOP *) 0x336470 (gdb) p stash-sv_any-xhv_pmroot-op_pmnext $9 = (PMOP *) 0xa7f2c However, the cause of the bus error is clear: (gdb) p *pm-op_pmnext $10 = { op_next = 0x7f9a, op_sibling = 0x40be0014, op_ppaddr = 0x3c9f0ffe, op_targ = 945815552, op_type = 14468, op_seq = 18156, op_flags = 72 'H', op_private = 5 '\005', op_first = 0x3c000800, op_last = 0x6100, op_pmreplroot = 0x7f9a, op_pmreplstart = 0x40be005c, op_pmnext = 0x7f83e378, op_pmregexp = 0x4bff34ad, op_pmflags = 31869, op_pmpermflags = 7032, op_pmdynflags = 127 '\177' } (gdb) p *pm-op_pmnext-op_pmnext Cannot access memory at address 0x7f83e378 And my question, which I fear will be Warnocked - do we know what change caused this bug to be fixed by 5.8.0? Or can anyone reproduce it in 5.8.0 or later? Nicholas Clark It is working fine in 5.5-maint. [EMAIL PROTECTED]:~/perl-5.5.x$ ./perl -Ilib -MData::Dumper -e 'package Data::Dumper; reset' [EMAIL PROTECTED]:~/perl-5.5.x$
Smoke [5.9.3] 25366 FAIL(F) MSWin32 WinXP/.Net SP2 (x86/2 cpu)
Automated smoke report for 5.9.3 patch 25366 Mugwump.uk.radan.com: Intel(R) Pentium(R) 4 CPU 3.40GHz(~3391 MHz) (x86/2 cpu) onMSWin32 - WinXP/.Net SP2 using bcc32 version 5.5.1 smoketime 11 hours 7 minutes (average 16 minutes 41 seconds) Summary: FAIL(F) O = OK F = Failure(s), extended report at the bottom X = Failure(s) under TEST but not under harness ? = still running or test results not (yet) available Build failures during: - = unknown or N/A c = Configure, m = make, M = make (after miniperl), t = make test-prep 25366 Configuration (common) -DCCTYPE=BORLAND -DINST_TOP=$(INST_DRV)\Smoke\doesntexist --- - F F O O -Dusemymalloc F F -Duselargefiles O O -Duselargefiles -Dusemymalloc F F -Duseithreads -Uuseimpsys O O -Duseithreads -Uuseimpsys -Dusemymalloc F F -Duseithreads -Uuseimpsys -Duselargefiles O O -Duseithreads -Uuseimpsys -Duselargefiles -Dusemymalloc O O -Duseithreads O O -Duseithreads -Duselargefiles F F -Accflags='-DPERL_COPY_ON_WRITE' O O -Accflags='-DPERL_COPY_ON_WRITE' -Dusemymalloc F F -Accflags='-DPERL_COPY_ON_WRITE' -Duselargefiles O O -Accflags='-DPERL_COPY_ON_WRITE' -Duselargefiles -Dusemymalloc F F -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys O O -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys -Dusemymalloc F F -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys -Duselargefiles O O -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys -Duselargefiles -Dusemymalloc O O -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads O O -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Duselargefiles | +- -DDEBUGGING +--- no debugging Locally applied patches: DEVEL24148 Failures: (common-args) -DCCTYPE=BORLAND -DINST_TOP=$(INST_DRV)\Smoke\doesntexist [default] [default] -DDEBUGGING [default] -Duselargefiles [default] -DDEBUGGING -Duselargefiles [default] -Duseithreads -Uuseimpsys [default] -DDEBUGGING -Duseithreads -Uuseimpsys [default] -Duseithreads -Uuseimpsys -Duselargefiles [default] -DDEBUGGING -Duseithreads -Uuseimpsys -Duselargefiles [default] -Accflags='-DPERL_COPY_ON_WRITE' [default] -DDEBUGGING -Accflags='-DPERL_COPY_ON_WRITE' [default] -Accflags='-DPERL_COPY_ON_WRITE' -Duselargefiles [default] -DDEBUGGING -Accflags='-DPERL_COPY_ON_WRITE' -Duselargefiles [default] -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys [default] -DDEBUGGING -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys [default] -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys -Duselargefiles [default] -DDEBUGGING -Accflags='-DPERL_COPY_ON_WRITE' -Duseithreads -Uuseimpsys -Duselargefiles ../lib/locale.t.FAILED 99-103 Compiler messages(bcc32): Warning W8019 ..\op.c 4618: Code has no effect in function Perl_newCONSTSUB Warning W8075 win32.c 1248: Suspicious pointer conversion in function win32_stat Warning W8004 fcrypt.c 348: 'in' is assigned a value that is never used in function des_set_key Warning W8004 fcrypt.c 505: 'b' is assigned a value that is never used in function des_fcrypt Warning W8075 .\win32.c 1248: Suspicious pointer conversion in function win32_stat Warning W8055 .\win32io.c 259: Possible overflow in shift operation in function PerlIOWin32_seek Warning W8055 .\win32io.c 280: Possible overflow in shift operation in function PerlIOWin32_tell Warning W8004 .\fcrypt.c 348: 'in' is assigned a value that is never used in function des_set_key Warning W8004 .\fcrypt.c 505: 'b' is assigned a value that is never used in function des_fcrypt Warning W8019 byterun.c 1072: Code has no effect in function byterun Warning W8008 crc32.c 232: Condition is always true in function crc32 Warning W8066 crc32.c 242: Unreachable code in function crc32 Warning W8004 deflate.c 352: 'hash_head' is assigned a value that is never used in function deflateSetDictionary Warning W8008 deflate.c 1278: Condition is always false in function fill_window Warning W8066 deflate.c 1279: Unreachable code in function fill_window Warning W8004 deflate.c 1669: 'bflush' is assigned a value that is never used in function deflate_slow Warning W8019 Dumper.xs 573: Code has no effect in function DD_dump Warning W8019 Opcode.xs 274: Code has no effect in function XS_Opcode__safe_pkg_prep Warning W8019 SDBM_File.c 129: Code has no effect in function XS_SDBM_File_FETCH Warning W8019 SDBM_File.c 136: Code has no effect in function XS_SDBM_File_FETCH Warning W8019 SDBM_File.c 164: Code has no effect in function XS_SDBM_File_STORE Warning W8019 SDBM_File.c 168: Code has no effect in function XS_SDBM_File_STORE Warning W8019 SDBM_File.c 220: Code has no effect in function XS_SDBM_File_DELETE Warning W8019 SDBM_File.c 251: Code has no effect in function XS_SDBM_File_EXISTS