Title: bpo-31882: Cygwin: fix/skip some tests to work around hang in asyncio/asyncore test suites by embray · Pull Request #4149 · python/cpython · GitHub
Open Graph Title: bpo-31882: Cygwin: fix/skip some tests to work around hang in asyncio/asyncore test suites by embray · Pull Request #4149 · python/cpython
X Title: bpo-31882: Cygwin: fix/skip some tests to work around hang in asyncio/asyncore test suites by embray · Pull Request #4149 · python/cpython
Description: From the issue: Some of the tests for asyncio and asyncore block forever on Cygwin, due to a known (and seemingly difficult to fix) bug in Cygwin involving SO_PEERCRED on UNIX sockets. SO_PEERCRED is a socket option that can be used to exchange file ownership info of the socket at the time the connection was established (specifically on UNIX sockets). This feature is technically supported on Cygwin, but the effect of the bug is that if two sockets are opened on the same process (even without using socketpair()), the credential exchange protocol can cause connect() on the "client" socket to block unless the "server" socket is already listen()-ing. This situation is not all that common in practice (it is not a problem if the "client" and "server" are separate processes). But it does show up in the test suite in a number of places, since both sockets belong to the same process. This PR fixes the issue in some cases by explicitly NULL-ifying the SO_PEERCRED struct on the socket. This is preferable because with this small workaround those tests pass. Unfortunately, in other cases it was difficult to do this just for the test suite without too much meddling, so I just marked those tests to be skipped. https://bugs.python.org/issue31882
Open Graph Description: From the issue: Some of the tests for asyncio and asyncore block forever on Cygwin, due to a known (and seemingly difficult to fix) bug in Cygwin involving SO_PEERCRED on UNIX sockets. SO_PEERCRED...
X Description: From the issue: Some of the tests for asyncio and asyncore block forever on Cygwin, due to a known (and seemingly difficult to fix) bug in Cygwin involving SO_PEERCRED on UNIX sockets. SO_PEERCRED...
Opengraph URL: https://github.com/python/cpython/pull/4149
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:3e7b0dbb-4551-146b-afdc-2e6916cb0f28 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | 8C0A:2DA286:1256994:1935732:6A4DE5F7 |
| html-safe-nonce | 3a66873ac56dc70ffcbb72be82d1d65f44f2d9a8a3644ce9acb669576cc25339 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QzBBOjJEQTI4NjoxMjU2OTk0OjE5MzU3MzI6NkE0REU1RjciLCJ2aXNpdG9yX2lkIjoiNTk3NDIyNTc4MzExMDg4NjkwMyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 6b54df94353a4716838acd2a4e99d0c5b7c0d5dd0347a15e2278e29b98f4cd44 |
| hovercard-subject-tag | pull_request:149185710 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python/cpython/pull/4149/files |
| twitter:image | https://avatars.githubusercontent.com/u/676149?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/676149?s=400&v=4 |
| og:image:alt | From the issue: Some of the tests for asyncio and asyncore block forever on Cygwin, due to a known (and seemingly difficult to fix) bug in Cygwin involving SO_PEERCRED on UNIX sockets. SO_PEERCRED... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width