diff grpc.t @ 1321:351b95be742b

Tests: fixed grpc tests hang in accept() on internal nginx error.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 09 Apr 2018 14:53:25 +0300
parents 3b30e97acdcb
children 6874b32dc3d2
line wrap: on
line diff
--- a/grpc.t	Fri Apr 06 17:21:23 2018 +0300
+++ b/grpc.t	Mon Apr 09 14:53:25 2018 +0300
@@ -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++;