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}>"