]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 225042: If sendmail dies while processing a duplicate it corrupts the duplicates...
authorlpsolit%gmail.com <>
Thu, 9 Jun 2005 04:04:22 +0000 (04:04 +0000)
committerlpsolit%gmail.com <>
Thu, 9 Jun 2005 04:04:22 +0000 (04:04 +0000)
process_bug.cgi

index b9dab876aa7e9ac84e22a745b43fffbbc499e13f..7b0dd6a8a60585dc091c296735959e67c09700f6 100755 (executable)
@@ -1805,19 +1805,6 @@ foreach my $id (@idlist) {
     }
     $dbh->bz_unlock_tables();
 
-    $vars->{'mailrecipients'} = { 'cc' => \@ccRemoved,
-                                  'owner' => $origOwner,
-                                  'qacontact' => $origQaContact,
-                                  'changer' => Bugzilla->user->login };
-
-    $vars->{'id'} = $id;
-    
-    # Let the user know the bug was changed and who did and didn't
-    # receive email about the change.
-    $template->process("bug/process/results.html.tmpl", $vars)
-      || ThrowTemplateError($template->error());
-    $vars->{'header_done'} = 1;
-    
     if ($duplicate) {
         # Check to see if Reporter of this bug is reporter of Dupe 
         SendSQL("SELECT reporter FROM bugs WHERE bug_id = " .
@@ -1847,7 +1834,26 @@ foreach my $id (@idlist) {
         CheckFormFieldDefined($cgi,'comment');
         SendSQL("INSERT INTO duplicates VALUES ($duplicate, " .
                 $cgi->param('id') . ")");
-        
+    }
+
+    # Now all changes to the DB have been made. It's time to email
+    # all concerned users, including the bug itself, but also the
+    # duplicated bug and dependent bugs, if any.
+
+    $vars->{'mailrecipients'} = { 'cc' => \@ccRemoved,
+                                  'owner' => $origOwner,
+                                  'qacontact' => $origQaContact,
+                                  'changer' => Bugzilla->user->login };
+
+    $vars->{'id'} = $id;
+    
+    # Let the user know the bug was changed and who did and didn't
+    # receive email about the change.
+    $template->process("bug/process/results.html.tmpl", $vars)
+      || ThrowTemplateError($template->error());
+    $vars->{'header_done'} = 1;
+    
+    if ($duplicate) {
         $vars->{'mailrecipients'} = { 'changer' => Bugzilla->user->login }; 
 
         $vars->{'id'} = $duplicate;