]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 106377 - processmail rescanall should use lastdiffed
authorbbaetz%student.usyd.edu.au <>
Mon, 4 Mar 2002 06:06:19 +0000 (06:06 +0000)
committerbbaetz%student.usyd.edu.au <>
Mon, 4 Mar 2002 06:06:19 +0000 (06:06 +0000)
r=justdave, ddkilzer@theracingworld.com

editcomponents.cgi
editgroups.cgi
editmilestones.cgi
editproducts.cgi
editversions.cgi
processmail
sanitycheck.cgi

index 4d4079626d99788d5d1910f973ec361eb2279a3c..310ce5f019608da0f9005185245bce7a5f99434a 100755 (executable)
@@ -787,7 +787,8 @@ if ($action eq 'update') {
         }
 
         SendSQL("UPDATE bugs
-                 SET component=" . SqlQuote($component) . "
+                 SET component=" . SqlQuote($component) . ",
+                 delta_ts = delta_ts
                  WHERE component=" . SqlQuote($componentold) . "
                    AND product=" . SqlQuote($product));
         SendSQL("UPDATE components
index dfcca8a3f56e4f729cb53be75442862e46d3d884..62bb4b501e7e9ce5cbd1adb97fae959fe6c49c5c 100755 (executable)
@@ -518,7 +518,7 @@ if ($action eq 'delete') {
     }
     SendSQL("SELECT bug_id FROM bugs WHERE (groupset & $bit)");
     if (FetchOneColumn()) {
-      SendSQL("UPDATE bugs SET groupset=(groupset-$bit) " .
+      SendSQL("UPDATE bugs SET groupset=(groupset-$bit), delta_ts=delta_ts " .
               "WHERE (groupset & $bit)");
       print "All bugs have had group bit $bit cleared.  Any of these " .
             "bugs that were not also in another group are now " .
index 0bd1dac142f9b11c5beaf25dcc9b884b1dfb1f7c..b7ec7316f4f8a24bfdecd8e30353f38b148e76e0 100755 (executable)
@@ -530,7 +530,8 @@ if ($action eq 'update') {
             exit;
         }
         SendSQL("UPDATE bugs
-                 SET target_milestone=" . SqlQuote($milestone) . "
+                 SET target_milestone=" . SqlQuote($milestone) . ",
+                 delta_ts=delta_ts
                  WHERE target_milestone=" . SqlQuote($milestoneold) . "
                    AND product=" . SqlQuote($product));
         SendSQL("UPDATE milestones
index 536102f817291883f71119cf46e0c94213c8f133..c11c65db712fa1589590bab1956e48e66b7c4b87 100755 (executable)
@@ -1004,7 +1004,7 @@ if ($action eq 'update') {
             exit;
         }
 
-        SendSQL("UPDATE bugs SET product=$qp WHERE product=$qpold");
+        SendSQL("UPDATE bugs SET product=$qp, delta_ts=delta_ts WHERE product=$qpold");
         SendSQL("UPDATE components SET program=$qp WHERE program=$qpold");
         SendSQL("UPDATE products SET product=$qp WHERE product=$qpold");
         SendSQL("UPDATE versions SET program=$qp WHERE program=$qpold");
index 8c5e71c43dc9a28a9f53e005dedd0fac5ebf6583..19ec338c32dc593b2bf61e36d85e2f78306d9e28 100755 (executable)
@@ -529,7 +529,8 @@ if ($action eq 'update') {
             exit;
         }
         SendSQL("UPDATE bugs
-                 SET version=" . SqlQuote($version) . "
+                 SET version=" . SqlQuote($version) . ",
+                 delta_ts = delta_ts
                  WHERE version=" . SqlQuote($versionold) . "
                    AND product=" . SqlQuote($product));
         SendSQL("UPDATE versions
index 2bea93da639c438b9c4d1be64f1cd581f57454c4..b5f85e69577304832b3e17cadb26ecd3a128ea8a 100755 (executable)
@@ -831,15 +831,25 @@ if ($#ARGV == 1) {
 }
 
 if ($ARGV[0] eq "rescanall") {
-    print "<br> Collecting bug ids...\n";
-    SendSQL("select bug_id from bugs where to_days(now()) - to_days(delta_ts) <= 2 order by bug_id");
+    print "Collecting bug ids...\n";
+    SendSQL("select bug_id, lastdiffed, delta_ts from bugs where lastdiffed < delta_ts AND delta_ts < date_sub(now(), INTERVAL 30 minute) order by bug_id");
     my @list;
     while (my @row = FetchSQLData()) {
+        my $time = $row[2];
+        if ($time =~ /^(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) {
+            $time = "$1-$2-$3 $4:$5:$6";
+        }
+        print STDERR "Bug $row[0] has unsent mail. lastdiffed is $row[1], delta_ts is $time.\n";
         push @list, $row[0];
     }
+    if (scalar(@list) > 0) {
+        print STDERR scalar(@list) . " bugs found with possibly unsent mail\n";
+        print STDERR "Updating bugs, sending mail if required\n";
+    } else {
+        print "All appropriate mail appears to have been sent\n"
+    }
     foreach my $id (@list) {
         if (detaint_natural($id)) {
-            print "<br> Doing bug $id\n";
             ProcessOneBug($id);
         }
     }
index c85a3668e879c9e7112c59be033a9196c53e21cc..902557bb8ae3c6d450fda064db430470eaff71f6 100755 (executable)
@@ -582,6 +582,30 @@ if (@badbugs > 0) {
           join (", ", @badbugs));
 }
 
+###########################################################################
+# Unsent mail
+###########################################################################
+
+Status("Checking for unsent mail");
+
+@badbugs = ();
+
+SendSQL("SELECT bug_id " .
+        "FROM bugs WHERE lastdiffed < delta_ts AND ".
+        "delta_ts < date_sub(now(), INTERVAL 30 minute) ".
+        "ORDER BY bug_id");
+
+while (@row = FetchSQLData()) {
+    my ($id) = (@row);
+    push(@badbugs, $id);
+}
+
+if (@badbugs > 0) {
+    Alert("Bugs that have changes but no mail sent for at least half an hour: " .
+          join (", ", @badbugs));
+    print("Run <code>processmail rescanall</code> to fix this<p>\n");
+}
+
 ###########################################################################
 # End
 ###########################################################################