Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not OK: perl 5.10.0 +RC1 on ia64-linux 2.4.21-sgi302r24 (UNINSTALLED) #9129

Closed
p5pRT opened this issue Nov 23, 2007 · 18 comments
Closed

Not OK: perl 5.10.0 +RC1 on ia64-linux 2.4.21-sgi302r24 (UNINSTALLED) #9129

p5pRT opened this issue Nov 23, 2007 · 18 comments

Comments

@p5pRT
Copy link

p5pRT commented Nov 23, 2007

Migrated from rt.perl.org#47746 (status was 'resolved')

Searchable as RT47746$

@p5pRT
Copy link
Author

p5pRT commented Nov 23, 2007

From jpl@research.att.com

Failed two tests​: I scraped them off the screen...

t/op/stat.....................................................# Failed at op/stat.t line 466
# Failed at op/stat.t line 467
# Failed at op/stat.t line 468
FAILED at test 81

lib/CPANPLUS/t/03_CPANPLUS-Internals-Source...................# Failed test ' Timestamp on sourcefile updated'
# at ../lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t line 155.
# '1195832342'
# >=
# '1195832372'
FAILED at test 30

My home directory is NFS mounted on this host, I suspect that may
be related to the failures -- jpl

Perl Info

Flags:
    category=install
    severity=none

Site configuration information for perl 5.10.0:

Configured by jpl at Fri Nov 23 10:02:22 EST 2007.

Summary of my perl5 (revision 5 version 10 subversion 0 patch 32448) configuration:
  Platform:
    osname=linux, osvers=2.4.21-sgi302r24, archname=ia64-linux
    uname='linux shadowfax 2.4.21-sgi302r24 #1 smp fri oct 22 22:43:12 pdt 2004 ia64 ia64 ia64 gnulinux '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-delete-null-pointer-checks -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O2',
    cppflags='-fno-delete-null-pointer-checks -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/include/gdbm'
    ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-34)', 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='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=, 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 -O2 -L/usr/local/lib'

Locally applied patches:
    RC1


@INC for perl 5.10.0:
    lib
    /home/jpl/perl510/lib/5.10.0/ia64-linux
    /home/jpl/perl510/lib/5.10.0
    /home/jpl/perl510/lib/site_perl/5.10.0/ia64-linux
    /home/jpl/perl510/lib/site_perl/5.10.0
    .


Environment for perl 5.10.0:
    HOME=/home/jpl
    LANG=C
    LANGUAGE (unset)
    LC_ALL=C
    LD_LIBRARY_PATH=/opt/histx_1.2a/lib:/opt/intel_cc_80/lib:/usr/X11R6/lib:/usr/X11R6/lib/modules
    LOGDIR (unset)
    PATH=/home/jpl/perl/bin:/home/jpl/bin:/usr/common/bin:/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/etc:/usr/sbin:/usr/etc:/usr/games:.:/home/jpl/bzip:~kwc/playground/tabulate
    PERLIB=/home/jpl/perl/lib/site_perl
    PERL_BADLANG (unset)
    SHELL=/bin/sh

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2007

From @doughera88

On Fri, 23 Nov 2007, jpl @​ research . att . com wrote​:

Failed two tests​: I scraped them off the screen...

t/op/stat.....................................................# Failed at op/stat.t line 466
# Failed at op/stat.t line 467
# Failed at op/stat.t line 468
FAILED at test 81

lib/CPANPLUS/t/03_CPANPLUS-Internals-Source...................# Failed test ' Timestamp on sourcefile updated'
# at ../lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t line 155.
# '1195832342'
# >=
# '1195832372'
FAILED at test 30

My home directory is NFS mounted on this host, I suspect that may
be related to the failures -- jpl

Yes, that is likely. If the clocks on the host and NFS server are out of
sync, then this is the sort of thing that shows up. Most of the tests
sleep for a "few" seconds, but not for the 30+ seconds required here.
It's not obvious to me what we can usefully do about it. I guess we
should add some pity remark (e.g. "# Ignore failures if host and server
clocks aren't synchronized") to the verbose output.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2007

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2007

From @schwern

Andy Dougherty wrote​:

On Fri, 23 Nov 2007, jpl @​ research . att . com wrote​:

Failed two tests​: I scraped them off the screen...

t/op/stat.....................................................# Failed at op/stat.t line 466
# Failed at op/stat.t line 467
# Failed at op/stat.t line 468
FAILED at test 81

lib/CPANPLUS/t/03_CPANPLUS-Internals-Source...................# Failed test ' Timestamp on sourcefile updated'
# at ../lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t line 155.
# '1195832342'
# >=
# '1195832372'
FAILED at test 30

My home directory is NFS mounted on this host, I suspect that may
be related to the failures -- jpl

Yes, that is likely. If the clocks on the host and NFS server are out of
sync, then this is the sort of thing that shows up. Most of the tests
sleep for a "few" seconds, but not for the 30+ seconds required here.
It's not obvious to me what we can usefully do about it. I guess we
should add some pity remark (e.g. "# Ignore failures if host and server
clocks aren't synchronized") to the verbose output.

I'm surprised more didn't fail.

MakeMaker deals with this by touching a file then checking what its mtime is.
This lets you know what time the filesystem thinks it is so you can produce
an offset.

See calibrate_mtime() in t/lib/MakeMaker/Test/Utils.pm.

For the CPANPLUS test it's a simple matter of replacing "time" with
"calibrate_mtime". The stat test will need to calculate the filesystem clock
offset from the system clock and use that in place of 0.

Patch in the works.

--
Whip me, beat me, make my code compatible with VMS!

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2007

From @schwern

Michael G Schwern wrote​:

For the CPANPLUS test it's a simple matter of replacing "time" with
"calibrate_mtime". The stat test will need to calculate the filesystem clock
offset from the system clock and use that in place of 0.

Patch in the works.

Attached is the threatened patch. Could you please try it out on your nfs
with the time offset please?

--
Stabbing you in the face so you don't have to.

@p5pRT
Copy link
Author

p5pRT commented Nov 26, 2007

From @schwern

nfs.patch
--- lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t	(revision 40900)
+++ lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t	(local)
@@ -25,6 +25,18 @@
 my $at      = $cb->_author_tree;
 my $modname = TEST_CONF_MODULE;
 
+# To account for network filesystem time offsets
+sub filesystem_time {
+    ok open TMP, ">file.tmp";
+    print TMP "foo\n";
+    close TMP;
+    
+    my $time = [stat("file.tmp")]->[9];
+    1 while unlink 'file.tmp';
+
+    return $time;
+}
+
 for my $name (qw[auth mod dslip] ) {
     my $file = File::Spec->catfile( 
                         $conf->get_conf('base'),
@@ -146,7 +158,7 @@
         can_ok( $cb,    $meth );
         
         ### mark what time it is now, sleep 1 second for better measuring
-        my $now     = time;        
+        my $now     = filesystem_time;        
         sleep 1;
         
         my $ok      = $cb->$meth;
@@ -162,7 +174,7 @@
         can_ok( $cb,    $meth );
         
         ### mark what time it is now, sleep 1 second for better measuring
-        my $now     = time;        
+        my $now     = filesystem_time;        
         sleep 1;
         
         my $ok      = $cb->$meth( remote => $uri );
@@ -177,7 +189,7 @@
     {   CPANPLUS::Error->flush;
 
         ### mark what time it is now, sleep 1 second for better measuring
-        my $now = time;        
+        my $now = filesystem_time;        
         sleep 1;
         
         my $ok  = $cb->_build_trees(
--- t/op/stat.t	(revision 40900)
+++ t/op/stat.t	(local)
@@ -50,6 +50,10 @@
 
 my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];
 
+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = $mtime - time;
+
 #nlink should if link support configured in Perl.
 SKIP: {
     skip "No link count - Hard link support not built in.", 1
@@ -463,9 +467,9 @@
 print "# time=$^T, stat=(@a)\n";
 my @b = (-M _, -A _, -C _);
 print "# -MAC=(@b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
+cmp_ok( -M _, '<', $Filesystem_Time_Offset, 'negative -M works');
+cmp_ok( -A _, '<', $Filesystem_Time_Offset, 'negative -A works');
+cmp_ok( -C _, '<', $Filesystem_Time_Offset, 'negative -C works');
 ok(unlink($f), 'unlink tmp file');
 
 {

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @doughera88

On Mon, 26 Nov 2007, Michael G Schwern wrote​:

Andy Dougherty wrote​:

On Fri, 23 Nov 2007, jpl @​ research . att . com wrote​:

Failed two tests​: I scraped them off the screen...

t/op/stat.....................................................# Failed at op/stat.t line 466
# Failed at op/stat.t line 467
# Failed at op/stat.t line 468
FAILED at test 81

lib/CPANPLUS/t/03_CPANPLUS-Internals-Source...................# Failed test ' Timestamp on sourcefile updated'
# at ../lib/CPANPLUS/t/03_CPANPLUS-Internals-Source.t line 155.
# '1195832342'
# >=
# '1195832372'
FAILED at test 30

My home directory is NFS mounted on this host, I suspect that may
be related to the failures -- jpl

Yes, that is likely. If the clocks on the host and NFS server are out of
sync, then this is the sort of thing that shows up. Most of the tests
sleep for a "few" seconds, but not for the 30+ seconds required here.
It's not obvious to me what we can usefully do about it. I guess we
should add some pity remark (e.g. "# Ignore failures if host and server
clocks aren't synchronized") to the verbose output.

I'm surprised more didn't fail.

MakeMaker deals with this by touching a file then checking what its mtime is.
This lets you know what time the filesystem thinks it is so you can produce
an offset.

See calibrate_mtime() in t/lib/MakeMaker/Test/Utils.pm.

For the CPANPLUS test it's a simple matter of replacing "time" with
"calibrate_mtime". The stat test will need to calculate the filesystem clock
offset from the system clock and use that in place of 0.

Ah, clever. Yes, for CPANPLUS, that's probably very sensible. For the
stat test, I suppose we could make the test pass as you suggest, but I
wonder offhand whether doing so would mask any potential problem that the
test is meant to test. Hmm.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @schwern

Andy Dougherty wrote​:

Ah, clever. Yes, for CPANPLUS, that's probably very sensible. For the
stat test, I suppose we could make the test pass as you suggest, but I
wonder offhand whether doing so would mask any potential problem that the
test is meant to test. Hmm.

Yes, it's difficult to tell the difference between a broken stat returning the
wrong mtime and a desynched network file system.

Boy, wouldn't it be nice if time offset synchronization was built into the NFS
protocol?

More pragmatically, the way that I patched it, still using the < operator,
probably makes those three tests far too broad. It should probably delta the
-M _ vs the time offset and see if that comes out as less than 0.

--
<Schwern> What we learned was if you get confused, grab someone and swing
  them around a few times
  -- Life's lessons from square dancing

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From ben@morrow.me.uk

Quoth schwern@​pobox.com (Michael G Schwern)​:

--- t/op/stat.t (revision 40900)
+++ t/op/stat.t (local)
@​@​ -50,6 +50,10 @​@​

my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];

+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = $mtime - time;
+
#nlink should if link support configured in Perl.
SKIP​: {
skip "No link count - Hard link support not built in.", 1
@​@​ -463,9 +467,9 @​@​
print "# time=$^T, stat=(@​a)\n";
my @​b = (-M _, -A _, -C _);
print "# -MAC=(@​b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
+cmp_ok( -M _, '<', $Filesystem_Time_Offset, 'negative -M works');
+cmp_ok( -A _, '<', $Filesystem_Time_Offset, 'negative -A works');
+cmp_ok( -C _, '<', $Filesystem_Time_Offset, 'negative -C works');

Since this is supposed to be testing -M can be negative, should it
perhaps sleep for $Filesystem_Time_Offset + 2 and then test for -M < 0?
People with large offsets might end up sleeping for rather a long time,
though.

Ben

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @rgs

On 27/11/2007, Andy Dougherty <doughera@​lafayette.edu> wrote​:

Ah, clever. Yes, for CPANPLUS, that's probably very sensible. For the
stat test, I suppose we could make the test pass as you suggest, but I
wonder offhand whether doing so would mask any potential problem that the
test is meant to test. Hmm.

Jos will handle the CPANPLUS patch. For the stat.t failure, I choose to
document it in INSTALL instead.

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @doughera88

On Tue, 27 Nov 2007, Ben Morrow wrote​:

Quoth schwern@​pobox.com (Michael G Schwern)​:

[t/op/stat.t issues with unsynchronized NFS clocks]

+cmp_ok( -M _, '<', $Filesystem_Time_Offset, 'negative -M works');

Since this is supposed to be testing -M can be negative, should it
perhaps sleep for $Filesystem_Time_Offset + 2 and then test for -M < 0?
People with large offsets might end up sleeping for rather a long time,
though.

Yes, and that could be a problem. This year, the U.S. changed daylight
savings time rules again. I had one system that didn't get the updated
rules and was off by an hour. I would have been annoyed (and puzzled) if
perl's 'make test' suddenly decided to sleep for an hour.

--
  Andy Dougherty doughera@​lafayette.edu

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From jpl@research.att.com

Quoth schwern@​pobox.com (Michael G Schwern)​:

--- t/op/stat.t (revision 40900)
+++ t/op/stat.t (local)
@​@​ -50,6 +50,10 @​@​

my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];

+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = $mtime - time;
+
#nlink should if link support configured in Perl.
SKIP​: {
skip "No link count - Hard link support not built in.", 1
@​@​ -463,9 +467,9 @​@​
print "# time=$^T, stat=(@​a)\n";
my @​b = (-M _, -A _, -C _);
print "# -MAC=(@​b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
+cmp_ok( -M _, '<', $Filesystem_Time_Offset, 'negative -M works');
+cmp_ok( -A _, '<', $Filesystem_Time_Offset, 'negative -A works');
+cmp_ok( -C _, '<', $Filesystem_Time_Offset, 'negative -C works');

I tried a varient of Schwern's patch, using

  open(FOO, ">$tmpfile") || DIE("Can't open temp test file​: $!");

  my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];

  # The clock on a network filesystem might be different from the
  # system clock.

my $Filesystem_Time_Offset = abs($mtime - time)/(24*60*60);

to ensure the offset wasn't negative, and was in units comparable
to what -M/-A/-C would return. It worked. It occurred to me
that we may not be measuring the difference between the system
and filesystem clocks, because NFS, bless its stateless little
heart, may induce an arbitrary delay between the open(FOO) and
the stat(FOO). I don't think that will invalidate the test,
it'll just make the cmp_ok check easier to pass. Perhaps the
Right Thing to do would be to check the $Filesystem_Time_Offset
and skip the tests if it's too large? On any reasonable file
system, it should be very small. -- jpl

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From jpl@research.att.com

In the spirit of trying to be helpful, how about this, as a
patch for op/stat.t? On my NFS system with the 30-second skew
it gives me

...
ok 79 - -l _ croaks after -T _
ok 80 # skip​: Too much clock skew between system and filesystem
ok 81 # skip​: Too much clock skew between system and filesystem
ok 82 # skip​: Too much clock skew between system and filesystem
ok 83 # skip​: Too much clock skew between system and filesystem
ok 84 # skip​: Too much clock skew between system and filesystem
ok 85 - can create temp file
...

-- jpl

Inline Patch
--- stat.t.orig	Sun Jul 29 14:15:44 2007
+++ stat.t	Tue Nov 27 13:41:23 2007
@@ -50,6 +50,10 @@
 
 my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];
 
+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = abs($mtime - time); 
+
 #nlink should if link support configured in Perl.
 SKIP: {
     skip "No link count - Hard link support not built in.", 1
@@ -453,20 +457,24 @@
     unlink $linkname or print "# unlink $linkname failed: $!\n";
 }
 
-print "# Zzz...\n";
-sleep(3);
-my $f = 'tstamp.tmp';
-unlink $f;
-ok (open(S, "> $f"), 'can create tmp file');
-close S or die;
-my @a = stat $f;
-print "# time=$^T, stat=(@a)\n";
-my @b = (-M _, -A _, -C _);
-print "# -MAC=(@b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
-ok(unlink($f), 'unlink tmp file');
+SKIP: {
+    skip "Too much clock skew between system and filesystem", 5
+	if ($Filesystem_Time_Offset > 5);
+    print "# Zzz...\n";
+    sleep($Filesystem_Time_Offset+1);
+    my $f = 'tstamp.tmp';
+    unlink $f;
+    ok (open(S, "> $f"), 'can create tmp file');
+    close S or die;
+    my @a = stat $f;
+    print "# time=$^T, stat=(@a)\n";
+    my @b = (-M _, -A _, -C _);
+    print "# -MAC=(@b)\n";
+    ok( (-M _) < 0, 'negative -M works');
+    ok( (-A _) < 0, 'negative -M works');
+    ok( (-C _) < 0, 'negative -M works');
+    ok(unlink($f), 'unlink tmp file');
+}
 
 {
     ok(open(F, ">", $tmpfile), 'can create temp file');

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From jpl@research.att.com

Arggh. Cut-and-paste excess. Sorry!

Inline Patch
--- stat.t.orig	Sun Jul 29 14:15:44 2007
+++ stat.t	Tue Nov 27 13:48:32 2007
@@ -50,6 +50,10 @@
 
 my($nlink, $mtime, $ctime) = (stat(FOO))[$NLINK, $MTIME, $CTIME];
 
+# The clock on a network filesystem might be different from the
+# system clock.
+my $Filesystem_Time_Offset = abs($mtime - time); 
+
 #nlink should if link support configured in Perl.
 SKIP: {
     skip "No link count - Hard link support not built in.", 1
@@ -453,20 +457,24 @@
     unlink $linkname or print "# unlink $linkname failed: $!\n";
 }
 
-print "# Zzz...\n";
-sleep(3);
-my $f = 'tstamp.tmp';
-unlink $f;
-ok (open(S, "> $f"), 'can create tmp file');
-close S or die;
-my @a = stat $f;
-print "# time=$^T, stat=(@a)\n";
-my @b = (-M _, -A _, -C _);
-print "# -MAC=(@b)\n";
-ok( (-M _) < 0, 'negative -M works');
-ok( (-A _) < 0, 'negative -A works');
-ok( (-C _) < 0, 'negative -C works');
-ok(unlink($f), 'unlink tmp file');
+SKIP: {
+    skip "Too much clock skew between system and filesystem", 5
+	if ($Filesystem_Time_Offset > 5);
+    print "# Zzz...\n";
+    sleep($Filesystem_Time_Offset+1);
+    my $f = 'tstamp.tmp';
+    unlink $f;
+    ok (open(S, "> $f"), 'can create tmp file');
+    close S or die;
+    my @a = stat $f;
+    print "# time=$^T, stat=(@a)\n";
+    my @b = (-M _, -A _, -C _);
+    print "# -MAC=(@b)\n";
+    ok( (-M _) < 0, 'negative -M works');
+    ok( (-A _) < 0, 'negative -A works');
+    ok( (-C _) < 0, 'negative -C works');
+    ok(unlink($f), 'unlink tmp file');
+}
 
 {
     ok(open(F, ">", $tmpfile), 'can create temp file');

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @schwern

Rafael Garcia-Suarez wrote​:

On 27/11/2007, Andy Dougherty <doughera@​lafayette.edu> wrote​:

Ah, clever. Yes, for CPANPLUS, that's probably very sensible. For the
stat test, I suppose we could make the test pass as you suggest, but I
wonder offhand whether doing so would mask any potential problem that the
test is meant to test. Hmm.

Jos will handle the CPANPLUS patch. For the stat.t failure, I choose to
document it in INSTALL instead.

Since we can detect the problem in the test, how about just skipping the
effected tests?

--
Just call me 'Moron Sugar'.
  http​://www.somethingpositive.net/sp05182002.shtml

@p5pRT
Copy link
Author

p5pRT commented Nov 27, 2007

From @schwern

John P. Linderman wrote​:

In the spirit of trying to be helpful, how about this, as a
patch for op/stat.t?

+1

--
Ahh email, my old friend. Do you know that revenge is a dish that is best
served cold? And it is very cold on the Internet!

@p5pRT
Copy link
Author

p5pRT commented Jun 15, 2008

From @rgs

2007/11/27 John P. Linderman <jpl@​research.att.com>​:

Arggh. Cut-and-paste excess. Sorry!

--- stat.t.orig Sun Jul 29 14​:15​:44 2007
+++ stat.t Tue Nov 27 13​:48​:32 2007

Thanks, applied as #34056.

@p5pRT
Copy link
Author

p5pRT commented Jun 15, 2008

@rgs - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant