[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2020-05-26 Thread Cheryl Sabella


Cheryl Sabella  added the comment:

For reference, please note the comments in 
https://github.com/python/cpython/pull/11403#issuecomment-633779644.

--
nosy: +cheryl.sabella

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2019-01-02 Thread twisteroid ambassador


Change by twisteroid ambassador :


--
pull_requests: +10790, 10791
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2019-01-02 Thread twisteroid ambassador


Change by twisteroid ambassador :


--
pull_requests: +10790
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-12-23 Thread twisteroid ambassador


twisteroid ambassador  added the comment:

Looks like this bug is also cause by using _ensure_resolved() more than once 
for a given host+port, so it can probably be fixed together with 
https://bugs.python.org/issue35545 .

Masking sock.type should not be necessary anymore since 
https://bugs.python.org/issue32331 fixed it.

--
nosy: +twisteroid ambassador

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-11-06 Thread Gus Goulart


Gus Goulart  added the comment:

This error seems to come from base_events.py, lines 142-145, and since it's an 
OS specific limitation, I can't see Sebastien's suggestion as a feasible 
solution.
Maybe we could come up with something along the lines of the following patch. 
What do you think about it?

diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index 3726c556d4..15ee4d9d1b 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -142,6 +142,9 @@ def _ipaddr_info(host, port, family, type, proto):
 if '%' in host:
 # Linux's inet_pton doesn't accept an IPv6 zone index after host,
 # like '::1%lo0'.
+if sys.platform.startswith('linux'):
+return OSError("Linux's inet_pton doesn't accept an IPv6 "
+   "zone index after host")
 return None
 
 for af in afs:
diff --git a/Lib/test/test_asyncio/test_base_events.py 
b/Lib/test/test_asyncio/test_base_events.py
index 6d544d1eda..1b944ff89e 100644
--- a/Lib/test/test_asyncio/test_base_events.py
+++ b/Lib/test/test_asyncio/test_base_events.py
@@ -109,6 +109,9 @@ class BaseEventTests(test_utils.TestCase):
 self.assertIsNone(
 base_events._ipaddr_info('::3', 1, INET, STREAM, TCP))
 
+@unittest.skipIf(sys.platform.startswith('linux'),
+"Linux's inet_pton doesn't accept an IPv6 zone index after host")
+def test_for(self):
 # IPv6 address with zone index.
 self.assertIsNone(
 base_events._ipaddr_info('::3%lo0', 1, INET6, STREAM, TCP))

--
keywords: +patch
nosy: +gus.goulart, taleinat
Added file: https://bugs.python.org/file47913/issue33678.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-07-26 Thread Anton Patrushev


Anton Patrushev  added the comment:

I created small script showing the error.

--
nosy: +apatrushev
versions: +Python 3.7
Added file: https://bugs.python.org/file47714/test.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-05-29 Thread Yury Selivanov


Yury Selivanov  added the comment:

Can you write a unittest that exposes the bug?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-05-29 Thread Sebastien Bourdeauducq


Sebastien Bourdeauducq  added the comment:

Windows looks fine.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue33678] selector_events.BaseSelectorEventLoop.sock_connect should preserve socket type

2018-05-29 Thread Sebastien Bourdeauducq


New submission from Sebastien Bourdeauducq :

The current behavior causes an exception to be raised when trying to create a 
datagram socket and _ipaddr_info returns None (since asyncio then calls 
loop.getaddrinfo with SOCK_STREAM and IPPROTO_UDP).

Preserving socket type is made difficult by https://bugs.python.org/issue21327; 
the proposed patch includes a dirty workaround. I do not know yet if it works 
on Windows.

--- selector_events.py  2018-05-11 10:01:42.011164837 +0800
+++ selector_events.py.new  2018-05-29 17:41:03.103155480 +0800
@@ -439,8 +439,9 @@
 raise ValueError("the socket must be non-blocking")
 
 if not hasattr(socket, 'AF_UNIX') or sock.family != socket.AF_UNIX:
+socktype = sock.type & 0xf  # WA https://bugs.python.org/issue21327
 resolved = base_events._ensure_resolved(
-address, family=sock.family, proto=sock.proto, loop=self)
+address, family=sock.family, type=socktype, proto=sock.proto, 
loop=self)
 if not resolved.done():
 yield from resolved
 _, _, _, _, address = resolved.result()[0]

--
components: asyncio
messages: 318001
nosy: asvetlov, sebastien.bourdeauducq, yselivanov
priority: normal
severity: normal
status: open
title: selector_events.BaseSelectorEventLoop.sock_connect should preserve 
socket type
type: behavior
versions: Python 3.5, Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com