From 8883050f63da39de2516e234feabae5599cbd9ec Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Thu, 4 Aug 2022 18:57:38 +0200 Subject: [PATCH] server: fix freeze caused by race condition it happened when the server tried to send a request to a session that is being closed. --- server.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server.go b/server.go index adc50ea3..f181ae95 100644 --- a/server.go +++ b/server.go @@ -394,7 +394,16 @@ func (s *Server) run() { continue } - ss.request <- req + select { + case ss.request <- req: + case <-ss.ctx.Done(): + req.res <- sessionRequestRes{ + res: &base.Response{ + StatusCode: base.StatusBadRequest, + }, + err: liberrors.ErrServerTerminated{}, + } + } } else { if !req.create { req.res <- sessionRequestRes{