classification
Title: asyncio: "relative *delay* or absolute *when* should not exceed one day"
Type: Stage: resolved
Components: asyncio Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: MartinAltmayer, asvetlov, vstinner, yselivanov
Priority: normal Keywords: patch

Created on 2018-07-28 13:49 by yselivanov, last changed 2018-07-31 15:32 by yselivanov. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 8532 merged MartinAltmayer, 2018-07-28 15:50
PR 8586 merged miss-islington, 2018-07-31 14:06
PR 8587 merged miss-islington, 2018-07-31 14:07
Messages (7)
msg322561 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-07-28 13:49
asyncio documentation has this bit on timeouts:

    Timeouts (relative *delay* or absolute *when*) should not exceed one day.

Victor told me that the actual reason for this recommendation is a limitation in epoll (or other OS/selector) that prevents us from waiting for events longer than a day or so.

The solution to this problem is simple: we need to cap the maximum time we pass to the "selector.select()" function (in base_events.py/_run_once) to one day.
msg322572 - (view) Author: Martin Altmayer (MartinAltmayer) * Date: 2018-07-28 16:02
Added a small PR. Shall we update the doc? With this PR there is no reason anymore to disallow timeouts greater than one day in asyncio.

Greetings from the sprints @ Edinburgh!
msg322668 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2018-07-30 11:15
For python 3.7, i suggest to fix the bug but don't remove the note from 3.7 doc, dince 3.7.0 and older have the bug.
msg322777 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-07-31 14:06
New changeset 944451cd8d3e897138f4b43569de13cd081ee251 by Yury Selivanov (MartinAltmayer) in branch 'master':
bpo-34263 Cap timeout submitted to epoll/select etc. to one day. (GH-8532)
https://github.com/python/cpython/commit/944451cd8d3e897138f4b43569de13cd081ee251
msg322786 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-07-31 15:29
New changeset 6f16ffc1879fc934eba297b3e81bd940e32a7e03 by Yury Selivanov (Miss Islington (bot)) in branch '3.6':
[3.6] bpo-34263 Cap timeout submitted to epoll/select etc. to one day. (GH-8532) (GH-8587)
https://github.com/python/cpython/commit/6f16ffc1879fc934eba297b3e81bd940e32a7e03
msg322787 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-07-31 15:29
New changeset 172a81e42bc30da1bd4027db9cd3b6172469f7fe by Yury Selivanov (Miss Islington (bot)) in branch '3.7':
[3.7] bpo-34263 Cap timeout submitted to epoll/select etc. to one day. (GH-8532) (GH-8586)
https://github.com/python/cpython/commit/172a81e42bc30da1bd4027db9cd3b6172469f7fe
msg322788 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-07-31 15:32
Merged. Thank you, hope that you'll keep contributing! :)
History
Date User Action Args
2018-07-31 15:32:43yselivanovsetstatus: open -> closed
resolution: fixed
messages: + msg322788

stage: patch review -> resolved
2018-07-31 15:29:11yselivanovsetmessages: + msg322787
2018-07-31 15:29:04yselivanovsetmessages: + msg322786
2018-07-31 14:07:29miss-islingtonsetpull_requests: + pull_request8096
2018-07-31 14:06:32miss-islingtonsetpull_requests: + pull_request8095
2018-07-31 14:06:20yselivanovsetmessages: + msg322777
2018-07-30 11:15:17vstinnersetmessages: + msg322668
2018-07-28 16:02:43MartinAltmayersetnosy: + MartinAltmayer
messages: + msg322572
2018-07-28 15:50:04MartinAltmayersetkeywords: + patch
stage: patch review
pull_requests: + pull_request8048
2018-07-28 13:49:09yselivanovcreate