Timeout is doubled - socket.create_connection()
Open
Nobody has claimed this yet.
stdlib
topic-socket
type-bug
- Dominant language
- Python
- Stars
- 77.2k
- Forks
- 35.9k
- PR merge metrics
- PR metrics pending
Description
Bug report
Bug description:
import socket
import time
start = time.time()
sock = socket.create_connection(
address=("foobar", 10000),
timeout=5)
print(time.time() - start)
No matter what value you specify as a timeout, the timeout is always doubled. If you specify 5 seconds, an exception will only be thrown after 10 seconds; if you specify 10 seconds, then only after 20.
Tested on Debian 12 with Python 3.11.
CPython versions tested on:
3.11
Operating systems tested on:
Linux
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the socket.create_connection() entry point and reproduce the supplied script on Linux with Python 3.11, measuring the elapsed time for several timeout values. Trace the timeout handling and identify the relevant regression-test location. Done means the observed timeout matches the requested value and the behavior is covered by a test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100