Page MenuHomeSoftware Heritage

docker/nginx: Align objstorage proxy_read_timeout value with production
ClosedPublic

Authored by anlambert on Oct 28 2022, 3:54 PM.

Details

Summary

As in production settings for the objstorage reverse proxy, set HTTP read
timeout to 1h in order to avoid 504 error (Gateway Time-out) when posting
a large amount of contents to the objects storage.

I got hit by that issue when attempting to load the huge subversion repository
for TexLive (svn://tug.org/texlive).

docker-swh-loader-1  | [2022-10-28 01:58:32,371: DEBUG/ForkPoolWorker-1] rev: 90, swhrev: 041c10306f3efb9ad37e77eea5cca2e9772ec5ef, dir: b3e98625596f907e969400f1f4c133a2a397e68c
docker-swh-loader-1  | [2022-10-28 01:58:32,401: DEBUG/ForkPoolWorker-1] Flushing 17021 objects of type content (223127418 bytes)
docker-swh-loader-1  | [2022-10-28 01:59:33,719: ERROR/ForkPoolWorker-1] Loading failure, updating to `failed` status
docker-swh-loader-1  | Traceback (most recent call last):
docker-swh-loader-1  |   File "/tmp/tmp.E2SMlP3pbi/swh-loader-core/swh/loader/core/loader.py", line 414, in load
docker-swh-loader-1  |     self.store_data()
docker-swh-loader-1  |   File "/tmp/tmp.E2SMlP3pbi/swh-loader-svn/swh/loader/svn/loader.py", line 471, in store_data
docker-swh-loader-1  |     self.storage.content_add(self._contents)
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/proxies/buffer.py", line 159, in content_add
docker-swh-loader-1  |     keys=["sha1", "sha1_git", "sha256", "blake2s256"],
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/proxies/buffer.py", line 230, in object_add
docker-swh-loader-1  |     return self.flush()
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/proxies/buffer.py", line 292, in flush
docker-swh-loader-1  |     stats = add_fn(list(batch))
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/proxies/filter.py", line 58, in content_add
docker-swh-loader-1  |     [x for x in content if x.sha256 in contents_to_add]
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/api/client.py", line 45, in content_add
docker-swh-loader-1  |     return self._post("content/add", {"content": content})
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/core/api/__init__.py", line 283, in _post
docker-swh-loader-1  |     return self._decode_response(response)
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/core/api/__init__.py", line 365, in _decode_response
docker-swh-loader-1  |     self.raise_for_status(response)
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/storage/api/client.py", line 29, in raise_for_status
docker-swh-loader-1  |     super().raise_for_status(response)
docker-swh-loader-1  |   File "/srv/softwareheritage/venv/lib/python3.7/site-packages/swh/core/api/__init__.py", line 355, in raise_for_status
docker-swh-loader-1  |     raise exception from None
docker-swh-loader-1  | swh.core.api.RemoteException: <html>
docker-swh-loader-1  | <head><title>504 Gateway Time-out</title></head>
docker-swh-loader-1  | <body>
docker-swh-loader-1  | <center><h1>504 Gateway Time-out</h1></center>
docker-swh-loader-1  | <hr><center>nginx/1.23.2</center>
docker-swh-loader-1  | </body>
docker-swh-loader-1  | </html>

Diff Detail

Repository
rDENV Development environment
Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 32638
Build 51130: arc lint + arc unit