Bugzilla – Attachment 68602 Details for
Bug 18725
process_message_queue.pl sends duplicate emails if message_queue is not writable
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18725 - Process_message_queue sends duplicate emails if message_queue is not writable.
Bug-18725---Processmessagequeue-sends-duplicate-em.patch (text/plain), 1.72 KB, created by
Kyle M Hall (khall)
on 2017-10-26 13:04:52 UTC
(
hide
)
Description:
Bug 18725 - Process_message_queue sends duplicate emails if message_queue is not writable.
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2017-10-26 13:04:52 UTC
Size:
1.72 KB
patch
obsolete
>From ace3debd61839b0d392973391de9e9827ad35a86 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 5 Jul 2017 11:28:35 -0400 >Subject: [PATCH] Bug 18725 - Process_message_queue sends duplicate emails if > message_queue is not writable. > >Last week, we had a database server whose disk filled, causing database writes to fail. > >This meant that messages in message_queue marked 'pending' were not marked as 'sent' when they were added to the postfix mail queue; messages were sent every 15 minutes (as specified in the cron job) until the disk space issues were cleared. > >I would suggest adding a token write to the start of process_message_queue.pl as a 'canary in the coal mine'. If the database write fails, process_message_queue should stop, because it's not safe to proceed sending emails that may not be marked 'sent'. > >I have no good idea on how to test this patch so this is what I've got: >Test Plan: >1) Apply this patch >2) prove t/db_dependent/Letters.t > >Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> >--- > C4/Letters.pm | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > >diff --git a/C4/Letters.pm b/C4/Letters.pm >index 3f23090..a8600ce 100644 >--- a/C4/Letters.pm >+++ b/C4/Letters.pm >@@ -1445,8 +1445,11 @@ sub _set_message_status { > my $dbh = C4::Context->dbh(); > my $statement = 'UPDATE message_queue SET status= ? WHERE message_id = ?'; > my $sth = $dbh->prepare( $statement ); >- my $result = $sth->execute( $params->{'status'}, >- $params->{'message_id'} ); >+ >+ $dbh->do('LOCK TABLES message_queue WRITE'); >+ my $result = $sth->execute( $params->{'status'}, $params->{'message_id'} ); >+ $dbh->do('UNLOCK TABLES'); >+ > return $result; > } > >-- >2.10.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18725
:
64803
|
65625
|
68602
|
68603
|
70805
|
70826
|
70853
|
70876
|
73277
|
73278
|
73749
|
73750
|
73751
|
74143
|
74247