And if Jason Boyer's patch does indeed solve the immediate issue, then that suggests the following bit of defensive coding:
diff --git a/src/perl/lib/OpenSRF/Server.pm b/src/perl/lib/OpenSRF/Server.pm index dcf44fe..5170dd8 100644 --- a/src/perl/lib/OpenSRF/Server.pm +++ b/src/perl/lib/OpenSRF/Server.pm @@ -143,6 +143,7 @@ sub run {
$SIG{$_} = sub { $self->cleanup; } for (qw/INT QUIT/); $SIG{TERM} = sub { $self->cleanup(0, 1); }; + $SIG{ALRM} = sub { $self->cleanup(0, 1); }; $SIG{CHLD} = sub { $self->reap_children(); }; $SIG{HUP} = sub { $self->handle_sighup(); }; $SIG{USR1} = sub { $self->unregister_routers; };
And if Jason Boyer's patch does indeed solve the immediate issue, then that suggests the following bit of defensive coding:
diff --git a/src/perl/ lib/OpenSRF/ Server. pm b/src/perl/ lib/OpenSRF/ Server. pm lib/OpenSRF/ Server. pm lib/OpenSRF/ Server. pm
index dcf44fe..5170dd8 100644
--- a/src/perl/
+++ b/src/perl/
@@ -143,6 +143,7 @@ sub run {
$SIG{$_} = sub { $self->cleanup; } for (qw/INT QUIT/); reap_children( ); }; handle_ sighup( ); }; unregister_ routers; };
$SIG{TERM} = sub { $self->cleanup(0, 1); };
+ $SIG{ALRM} = sub { $self->cleanup(0, 1); };
$SIG{CHLD} = sub { $self->
$SIG{HUP} = sub { $self->
$SIG{USR1} = sub { $self->