]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1517606 - Prevent infinite loops by making workers die after 5 minutes
authorDylan William Hardison <dylan@hardison.net>
Tue, 8 Jan 2019 03:30:36 +0000 (22:30 -0500)
committerGitHub <noreply@github.com>
Tue, 8 Jan 2019 03:30:36 +0000 (22:30 -0500)
Bugzilla/JobQueue.pm
jobqueue-worker.pl

index c2c5827a3f5bdf6de378d53b3cf6372ffd2bd163..792883de33bb8305e6490549303346bd909f3fe0 100644 (file)
@@ -130,7 +130,11 @@ sub work {
     first_interval => 0,
     interval       => $delay,
     reschedule     => 'drift',
-    on_tick        => sub { $self->work_once }
+    on_tick        => sub {
+      alarm(60 * 5);
+      $self->work_once;
+      alarm(0);
+    }
   );
   DEBUG("working every $delay seconds");
   $loop->add($timer);
index 298185d4026a71b91f967923e8b71ee05c73535a..42e8f3424a1b3f1b534e9bc3784179be51d77e1d 100755 (executable)
@@ -18,7 +18,6 @@ BEGIN {
   my $dir = rel2abs(dirname(__FILE__));
   lib->import($dir, catdir($dir, 'lib'), catdir($dir, qw(local lib perl5)));
   chdir $dir or die "chdir $dir failed: $!";
-
 }
 
 use Bugzilla::JobQueue::Worker;