Skip to content

Add timeouts to model-download HTTP requests#53

Open
rayair250-droid wants to merge 1 commit into
dralgroup:mainfrom
rayair250-droid:fix/network-download-timeouts
Open

Add timeouts to model-download HTTP requests#53
rayair250-droid wants to merge 1 commit into
dralgroup:mainfrom
rayair250-droid:fix/network-download-timeouts

Conversation

@rayair250-droid

Copy link
Copy Markdown

Summary

Two requests.get() calls that download model files run without a timeout, so a stalled or unresponsive server hangs the MLatom process indefinitely (no way to recover except killing it):

  • mlatom/model_cls.py:287 — downloading a model from a link (streamed).
  • mlatom/interfaces/torchani_interface.py:1937 — fetching the ANI-1xnr parameters zip from GitHub.

Fix

Add timeout=30 to both, consistent with the rest of the codebase, which already sets timeouts on its network calls (MLatom.py uses timeout=3, _update_check.py and _version.py use timeouts too).

- requests.get(link, headers=headers, stream=True, allow_redirects=True)
+ requests.get(link, headers=headers, stream=True, allow_redirects=True, timeout=30)
- resource_res = requests.get(url)
+ resource_res = requests.get(url, timeout=30)

Note: requests' timeout is a per-read inactivity limit, not a total-duration cap, so this does not abort slow-but-progressing streamed downloads — it only unblocks the process when the connection goes dead.

Two requests.get() calls that download model files had no timeout, so a
stalled or unresponsive server hangs the process indefinitely:

- model_cls.py: downloading a model from a link
- torchani_interface.py: fetching the ANI-1xnr parameters zip

Add timeout=30, consistent with the rest of the codebase, which already sets
timeouts on its network calls (MLatom.py, _update_check.py, _version.py).
requests' timeout is a per-read inactivity limit, not a total cap, so it does
not abort slow-but-progressing streamed downloads.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant