From e12e46c9790da21eb3f1fb11c23254150a6e99b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Wed, 29 Dec 2021 12:15:34 +0100 Subject: [PATCH] fix #3807: don't attempt response on closed handle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit if a client closes the connection while the API server is waiting/stalling here, the handle will disappear, and sending a response is no longer possible. (this issue is only cosmetic, but if such clients are a regular occurrence it might get quite noisy in the logs) Signed-off-by: Fabian Grünbichler --- src/PVE/APIServer/AnyEvent.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/PVE/APIServer/AnyEvent.pm b/src/PVE/APIServer/AnyEvent.pm index 9cabb3e..cd4a50d 100644 --- a/src/PVE/APIServer/AnyEvent.pm +++ b/src/PVE/APIServer/AnyEvent.pm @@ -361,6 +361,7 @@ sub response { } elsif ($delay && $delay > 0) { my $w; $w = AnyEvent->timer(after => $delay, cb => sub { undef $w; # delete reference + return if !$reqstate->{hdl}; # already disconnected $reqstate->{hdl}->push_write($res); $self->finish_response($reqstate); });