Tests: fixed grpc tests hang in accept() on internal nginx error.
diff --git a/grpc.t b/grpc.t
index 5ef267e..9ddd010 100644
--- a/grpc.t
+++ b/grpc.t
@@ -463,7 +463,20 @@
 			{ name => 'te', value => 'trailers', mode => 2 }]});
 
 		if (!$extra{reuse}) {
-			$client = $server->accept() or return;
+			eval {
+				local $SIG{ALRM} = sub { die "timeout\n" };
+				alarm(5);
+
+				$client = $server->accept() or return;
+
+				alarm(0);
+			};
+			alarm(0);
+			if ($@) {
+				log_in("died: $@");
+				return undef;
+			}
+
 			log2c("(new connection $client)");
 			$n++;
 
diff --git a/grpc_request_buffering.t b/grpc_request_buffering.t
index f290e8e..26b394c 100644
--- a/grpc_request_buffering.t
+++ b/grpc_request_buffering.t
@@ -102,7 +102,20 @@
 			{ name => 'content-length', value => '5' }]});
 
 		if (!$extra{reuse}) {
-			$client = $server->accept() or return;
+			eval {
+				local $SIG{ALRM} = sub { die "timeout\n" };
+				alarm(5);
+
+				$client = $server->accept() or return;
+
+				alarm(0);
+			};
+			alarm(0);
+			if ($@) {
+				log_in("died: $@");
+				return undef;
+			}
+
 			log2c("(new connection $client)");
 
 			$client->sysread(my $buf, 24) == 24 or return; # preface
diff --git a/grpc_ssl.t b/grpc_ssl.t
index 98313fa..858f80a 100644
--- a/grpc_ssl.t
+++ b/grpc_ssl.t
@@ -241,7 +241,20 @@
 			{ name => 'te', value => 'trailers', mode => 2 }]});
 
 		if (!$extra{reuse}) {
-			$client = $server->accept() or return;
+			eval {
+				local $SIG{ALRM} = sub { die "timeout\n" };
+				alarm(5);
+
+				$client = $server->accept() or return;
+
+				alarm(0);
+			};
+			alarm(0);
+			if ($@) {
+				log_in("died: $@");
+				return undef;
+			}
+
 			log2c("(new connection $client)");
 
 			$client->sysread(my $buf, 24) == 24 or return; # preface