Skip to content

Commit

Permalink
Merge pull request #3320 from lonvia/fix-timeout-return-code
Browse files Browse the repository at this point in the history
Fix returned HTTP error when query runs too long
  • Loading branch information
lonvia authored Jan 28, 2024
2 parents 7321e66 + b3a2b3d commit dcebea3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
3 changes: 3 additions & 0 deletions nominatim/server/falcon/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from typing import Optional, Mapping, cast, Any, List
from pathlib import Path
import datetime as dt
import asyncio

from falcon.asgi import App, Request, Response

Expand Down Expand Up @@ -164,6 +165,8 @@ def get_application(project_dir: Path,
middleware=middleware)
app.add_error_handler(HTTPNominatimError, nominatim_error_handler)
app.add_error_handler(TimeoutError, timeout_error_handler)
# different from TimeoutError in Python <= 3.10
app.add_error_handler(asyncio.TimeoutError, timeout_error_handler)

legacy_urls = api.config.get_bool('SERVE_LEGACY_URLS')
for name, func in api_impl.ROUTES:
Expand Down
4 changes: 3 additions & 1 deletion nominatim/server/starlette/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from typing import Any, Optional, Mapping, Callable, cast, Coroutine, Dict, Awaitable
from pathlib import Path
import datetime as dt
import asyncio

from starlette.applications import Starlette
from starlette.routing import Route
Expand Down Expand Up @@ -144,7 +145,8 @@ def get_application(project_dir: Path,
middleware.append(Middleware(FileLoggingMiddleware, file_name=log_file))

exceptions: Dict[Any, Callable[[Request, Exception], Awaitable[Response]]] = {
TimeoutError: timeout_error
TimeoutError: timeout_error,
asyncio.TimeoutError: timeout_error
}

async def _shutdown() -> None:
Expand Down

0 comments on commit dcebea3

Please sign in to comment.