php_network_connect_socket() in synchronous mode doesn't correctly handle EINPROGRESS
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 40.4k
- Forks
- 8.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 96
Description
Description
Hey!
I think I tracked a PHPRedis issue where it very sporadically throws a "Operation is in progress" exception on connect to a bug in the php_network_connect_socket() function. The problem is that it doesn't clear an earlier occurring EINPROGRESS error, which will then get returned while it checks for select() errors.
https://github.com/php/php-src/pull/13252 for a possible fix.
Regards,
Maurits
PHP Version
PHP 8.3.1
Operating System
Ubuntu 20.04
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 by reading the php_network_connect_socket() implementation and the proposed fix in PR 13252. Reproduce the synchronous connection case described for PHP 8.3.1 on Ubuntu 20.04, then verify that a successful connection no longer reports an "Operation is in progress" exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, php
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100