Retry Foldseek search fetches through a reset connection - #91
Closed
adititm wants to merge 1 commit into
Closed
Conversation
foldseek-search and foldseek-multimer-search each reuse one session across a submit POST, several poll_until_complete GETs, and a post-poll result-archive GET against search.foldseek.com -- the same reuse pattern that let a pooled connection reset go unretried in uniprot-fetch: urllib3's adapter-level Retry doesn't cover a ConnectionResetError raised while sending on a connection the server already closed, which surfaces as requests.exceptions.ConnectionError above the adapter rather than through it. foldseek-multimer-search imports _submit from foldseek_search.py rather than defining its own, so fixing it there covers both tools; multimer's own result-archive GET needed its own fix. poll_until_complete's internal GETs already retry ConnectionError/Timeout against a wall-clock deadline and are unaffected. Depends on the request_with_retry helper added in the uniprot-fetch fix (fix/uniprot-connection-reset-retry) -- this branch is based on it.
Contributor
Author
|
Superseded by #93, which combines this and the other sibling fixes into one PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
foldseek-searchandfoldseek-multimer-searcheach reuse one session across a submit POST, severalpoll_until_completeGETs, and a post-poll result-archive GET againstsearch.foldseek.com— the same reuse pattern that let a pooled-connection reset go unretried inuniprot-fetch.foldseek-multimer-searchimports_submitfromfoldseek_search.pyrather than defining its own, so fixing it there covers both tools; multimer's own result-archive GET needed its own separate fix.poll_until_complete's internal GETs already retryConnectionError/Timeoutagainst a wall-clock deadline and are unaffected.Depends on #84 (
fix/uniprot-connection-reset-retry) for therequest_with_retryhelper — this PR is based on that branch and should be reviewed/merged after it (or rebased ontomainonce #84 lands).Test plan
pytest tests/structure_alignment_tests/test_foldseek_search.py tests/structure_alignment_tests/test_foldseek_multimer_search.py -q -m "not integration"— 15 passed, 2 skipped (unrelated slow tests), including a new regression test on the shared_submit(covers both tools) reproducing the reused-connection failure directly.--integration(livesearch.foldseek.comremote submit-and-poll, including a real multimer search finding PDL1 complex neighbors) — 19 passed, 0 failed, 2 skipped.ruff check/ruff format --checkclean.mypy— no new errors.test_docstring_style.py) — clean.Opened as a draft for review before merging.