Serials: change more carp() to croak() to avoid infinite loops
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Wed, 13 Feb 2013 15:34:17 +0000 (10:34 -0500)
committerDan Wells <dbw2@calvin.edu>
Thu, 21 Feb 2013 18:57:50 +0000 (13:57 -0500)
This addresses a problem very similar to that in LP #1075167, where
certain loops never end because problems with the data elicited calls to
carp(), which fills up log, but never gives our loops notice to end.

Visible symptoms include 1) a greate volume of log spew and 2) an
open-ils.serial drone that ties up a CPU.

The fault lies maybe in our loops rather than in the MFHD
package, but this fixes the problem fastest, and should not have
undesirable side-effects.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/Caption.pm

index bec2677..a873372 100644 (file)
@@ -335,7 +335,7 @@ sub calendar_increment {
 
     # A calendar change is defined, need to check if it applies
     if (scalar(@{$new}) == 1) {
-        carp "Can't calculate date change for ", $self->as_string;
+        croak "Can't calculate date change for ", $self->as_string;
         return 0;
     }
 
@@ -473,7 +473,7 @@ sub next_chron {
         # There was no suitable publication pattern defined,
         # so use the $w frequency to figure out the next date
         if (!defined($freq)) {
-            carp "Undefined frequency in next_chron!";
+            croak "Undefined frequency in next_chron!";
         } elsif (!MFHD::Date::can_increment($freq)) {
             croak "Don't know how to deal with frequency '$freq'!";
         } else {