From a9029c68eadba7f87023fa5190c5c9ac465af0f2 Mon Sep 17 00:00:00 2001 From: Zixuan James Li Date: Thu, 23 Jun 2022 17:49:32 -0400 Subject: [PATCH] tornado: Make _request an attribute on AsyncDjangoHandler. For the same reason as `handler_id` has, we define `_request` as an attribute. Note that the name `request` is already taken. Signed-off-by: Zixuan James Li --- zerver/tornado/event_queue.py | 1 + zerver/tornado/handlers.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/zerver/tornado/event_queue.py b/zerver/tornado/event_queue.py index 057715fa3d..55db687956 100644 --- a/zerver/tornado/event_queue.py +++ b/zerver/tornado/event_queue.py @@ -182,6 +182,7 @@ class ClientDescriptor: def add_event(self, event: Mapping[str, Any]) -> None: if self.current_handler_id is not None: handler = get_handler_by_id(self.current_handler_id) + assert handler._request is not None async_request_timer_restart(handler._request) self.event_queue.push(event) diff --git a/zerver/tornado/handlers.py b/zerver/tornado/handlers.py index bf341cfdc2..ce175f4a37 100644 --- a/zerver/tornado/handlers.py +++ b/zerver/tornado/handlers.py @@ -1,6 +1,6 @@ import logging import urllib -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import tornado.web from asgiref.sync import sync_to_async @@ -54,6 +54,7 @@ def finish_handler( # get_events request has supplanted this request) handler = get_handler_by_id(handler_id) request = handler._request + assert request is not None async_request_timer_restart(request) log_data = RequestNotes.get_notes(request).log_data assert log_data is not None @@ -92,6 +93,8 @@ class AsyncDjangoHandler(tornado.web.RequestHandler, base.BaseHandler): # be cleared when the handler finishes its response self.handler_id = allocate_handler_id(self) + self._request: Optional[HttpRequest] = None + def __repr__(self) -> str: descriptor = get_descriptor_by_handler_id(self.handler_id) return f"AsyncDjangoHandler<{self.handler_id}, {descriptor}>"