You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2005/11/16 00:59:59 UTC

svn commit: r344484 - in /spamassassin/trunk/masses/rule-qa: automc/ruleqa.cgi corpus-hourly rule-hits-over-time

Author: jm
Date: Tue Nov 15 15:59:57 2005
New Revision: 344484

URL: http://svn.apache.org/viewcvs?rev=344484&view=rev
Log:
avoid OOM problems with graphing; we shouldn't touch dates out of range

Modified:
    spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
    spamassassin/trunk/masses/rule-qa/corpus-hourly
    spamassassin/trunk/masses/rule-qa/rule-hits-over-time

Modified: spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi?rev=344484&r1=344483&r2=344484&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi (original)
+++ spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi Tue Nov 15 15:59:57 2005
@@ -340,7 +340,10 @@
 }
 
 
-$tmpl =~ s/!longdatelist!/ gen_switch_url("longdatelist", 1) /ges;
+my $dranchor = "r".$daterev; $dranchor =~ s/[^A-Za-z0-9]/_/gs;
+my $ldlurl = gen_switch_url("longdatelist", 1)."#".$dranchor;
+
+$tmpl =~ s/!longdatelist!/$ldlurl/gs;
 $tmpl =~ s/!THISURL!/$cgi_url/gs;
 $tmpl =~ s/!daterev!/$daterev/gs;
 $tmpl =~ s/!rule!/$rule/gs;
@@ -887,6 +890,8 @@
   my $fname = get_datadir_for_daterev($dr)."/info.xml";
   my $fastfname = get_datadir_for_daterev($dr)."/fastinfo.xml";
 
+  my $dranchor = "r".$dr; $dranchor =~ s/[^A-Za-z0-9]/_/gs;
+
   my $txt;
   if (-f $fname) {
     eval {
@@ -907,7 +912,7 @@
       $txt = qq{
 
           <td class=daterevtd>
-        <a title="$drtitle" href="!drhref!">$fastinfo->{date}</a></td>
+        <a name="$dranchor" title="$drtitle" href="!drhref!">$fastinfo->{date}</a></td>
           <td class=daterevtd>
         <a title="$drtitle" href="!drhref!">$fastinfo->{rev}</a></td>
           <td class=daterevtd>
@@ -1048,7 +1053,7 @@
        </tr>
 
       };
-    } @list). qq{
+    } reverse @list). qq{
 
       </table></div>
 

Modified: spamassassin/trunk/masses/rule-qa/corpus-hourly
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-qa/corpus-hourly?rev=344484&r1=344483&r2=344484&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/corpus-hourly (original)
+++ spamassassin/trunk/masses/rule-qa/corpus-hourly Tue Nov 15 15:59:57 2005
@@ -459,7 +459,7 @@
   print qq{created: $bytes bytes, finished at $when
 URL:
 
-  http://buildbot.spamassassin.org/ruleqa/ruleqa?daterev=$output_revpath
+  http://buildbot.spamassassin.org/ruleqa?daterev=$output_revpath
 
 };
 

Modified: spamassassin/trunk/masses/rule-qa/rule-hits-over-time
URL: http://svn.apache.org/viewcvs/spamassassin/trunk/masses/rule-qa/rule-hits-over-time?rev=344484&r1=344483&r2=344484&view=diff
==============================================================================
--- spamassassin/trunk/masses/rule-qa/rule-hits-over-time (original)
+++ spamassassin/trunk/masses/rule-qa/rule-hits-over-time Tue Nov 15 15:59:57 2005
@@ -134,13 +134,13 @@
     }
     push (@allfiles, $file);
 
-    if (0) {
+    if (1) {
       # use an on-disk file to avoid massive VM usage for this hash
       # on huge datasets
-      unlink("graph.tmp.dir");
-      unlink("graph.tmp.pag");
-      tie (%{$allresults{$file}}, 'SDBM_File', 'graph.tmp', O_RDWR|O_CREAT, 0600)
-            or die "tie failed: $!";
+      unlink("$tmpdir/graph.tmp.dir");
+      unlink("$tmpdir/graph.tmp.pag");
+      tie (%{$allresults{$file}}, 'SDBM_File', "$tmpdir/graph.tmp",
+                O_RDWR|O_CREAT, 0600) or die "tie failed: $!";
     }
     else {
       %{$allresults{$file}} = ();
@@ -288,6 +288,11 @@
 sub read_logs {
   my $file = shift;
 
+  # limit to a range from [4 years ago, today] to avoid OOM craziness
+  # from corrupt input
+  my $limit_hi = time;
+  my $limit_lo = $limit_hi - (24*60*60*365*4);
+
   $lastbucket = undef;
   $nextbucket = undef;
   $seen_y = 0;
@@ -305,6 +310,11 @@
     my $t;
     /\btime=(\d+),/ and $t = $1;
     next unless $t;
+
+    if ($t < $limit_lo || $t > $limit_hi) {
+      warn "ignoring out-of-range time $t (limit: $limit_lo < t < $limit_hi)";
+      next;
+    }
 
     my $found = ($_ =~ $rule_re);