[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2021-05-18 Thread Gregory P. Smith


Gregory P. Smith  added the comment:

I'm making progress on https://bugs.python.org/issue37901 and related IPv6-only 
issues, the changes of which tend to shake out improper uses of 127.0.0.1 
hardcoded.

I'm closing this issue as there aren't specific needs that the rest won't cover.

--
resolution:  -> out of date
stage: patch review -> commit review
status: open -> closed

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-09-13 Thread Gregory P. Smith

Gregory P. Smith added the comment:

LOL. That is a very strange story and the last thing i'd have expected to fall 
out from changing one string to another. :)

--

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-09-13 Thread STINNER Victor

STINNER Victor added the comment:

I would like to share a short story with you.

I'm working on fixing *all* bugs on our 3 CI (buildbots, Travis CI, AppVeyor). 
I fixed almost all random test failures.

Right now, I'm trying to fix all "dangling thread" warnings: bpo-31234.

I was sure that I was done, but no, test_ssl failed on Travis CI and AppVeyor. 
Hum. The failure doesn't make sense. The code is perfectly fine. The thread is 
supposed to be gone for a long time, but not, it's still here for some reason.

After one day of debugging, I found that the thread is kept alive by a variable 
of a frame. The frame is kept alive from an traceback object of an Exception. 
The exception is ConnectionRefusedError. I continue to follow links, I see that 
the exception comes from socket.create_connection()... Interesting.

socket.create_connection() tries to be nice and keeps the last exception to 
re-raise it if no connection succeed.

The code seems correct: it stores the exception in the variable "err", and 
"return sock" is used to exit on succeed.

*But*.

It seems like the exception stored in "err" is part of a reference cycle, so 
indirectly, a lot of frames are kept alive because of this cycle.

So, I wanted to share this story with you because test_ssl only started to fail 
recently. The reason is that support.HOST was modified from "127.0.0.1" to 
"localhost". So if the name resolution first returns an IPv6 address, we may 
get the ConnectionRefusedError error, stored in "err", and then the connection 
succeed with IPv4... but you get the reference cycle mess.

Modifying support.HOST to "localhost" triggered a reference cycle!? Strange 
story.

I'm working on a quick fix: https://github.com/python/cpython/pull/3546

--
nosy: +haypo

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-09-09 Thread R. David Murray

R. David Murray added the comment:

Users on linux can and do screw this up too.  I believe we also had a case 
where a distro screwed up the defaults for, I think, the reverse resolve?  Not 
sure which test that was, and the test may since been fixed to not depend on 
that.  The point is this may break in unexpected ways but hopefully they will 
all be either fixable or legitimately "your system is broken".

I'll review the test_smtplib changes soonish (so ping me if I don't :)

--
nosy: +r.david.murray

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-09-09 Thread Gregory P. Smith

Gregory P. Smith added the comment:


New changeset efb1d0a3c001a6153211063ba439b9847aa03509 by Gregory P. Smith in 
branch 'master':
bpo-29639: change test.support.HOST to "localhost"
https://github.com/python/cpython/commit/efb1d0a3c001a6153211063ba439b9847aa03509


--

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-09-08 Thread Gregory P. Smith

Changes by Gregory P. Smith :


--
keywords: +patch
pull_requests: +3457
stage:  -> patch review

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-03-15 Thread Gregory P. Smith

Changes by Gregory P. Smith :


--
assignee:  -> gregory.p.smith

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-27 Thread Gregory P. Smith

Gregory P. Smith added the comment:

great! that makes me feel much less bad about fixing this in the way i desire. 
:)

--

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-27 Thread Steve Dower

Steve Dower added the comment:

As far as I recall, there's a hosts file that resolves localhost to 127.0.0.1 
on Windows, which means a user could break their own configuration if they so 
desired. Definitely on all supported versions we should be able to assume 
localhost can be resolved.

I haven't checked out how it deals with IPv6, but presumably there's a priority 
or another hosts file that will cover it.

--

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-27 Thread Brian Curtin

Brian Curtin added the comment:

I echo Paul. I think the last time I would have seen a problem was on Windows 
2000, which is unsupported per PEP-11.

+1 to using localhost

--
nosy: +brian.curtin

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-27 Thread Paul Moore

Paul Moore added the comment:

I have a vague recollection of once working on a (Windows) system that 
mis-resolved localhost. But it was a long time ago, and I'm 100% OK with 
calling such a system broken.

+1 on using localhost

--

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-27 Thread Antoine Pitrou

Antoine Pitrou added the comment:

I'm not sure how much of the original analysis was right.  I've just fired up a 
network-less Windows VM and 'localhost' seems to resolve just fine:

>>> socket.gethostbyname('localhost')
'127.0.0.1'
>>> socket.getaddrinfo('localhost', 80, socket.AF_UNSPEC, socket.SOCK_STREAM)

[(,
  ,
  0,
  '',
  ('::1', 80, 0, 0)),
 (,
  ,
  0,
  '',
  ('127.0.0.1', 80))]


But we should defer to our Windows experts on this.

(also, perhaps we should simply mandate that buildbots have at least basic DNS 
functionality. This would lighten the maintenance load on the test suite 
slightly.)

--
nosy: +paul.moore, pitrou, steve.dower, tim.golden, zach.ware

___
Python tracker 

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



[issue29639] test suite intentionally avoids referring to localhost, destroying abstraction away from IPv6 vs IPv4

2017-02-23 Thread Gregory P. Smith

New submission from Gregory P. Smith:

I am working on fixing our test suite to run on IPv6 only hosts (which are 
becoming a reality).  Many failures today occur because of hard coded 127.0.0.1 
values.

This is wrong.  We should refer to "localhost"

The "solution" to https://bugs.python.org/issue18792 moved us backwards towards 
hard coding IP version type specific addresses claiming that windows cannot 
handle resolving localhost reliably.

On any windows system where that is the case we should declare the system 
broken and simply not run any networking related tests.

--
components: Tests
messages: 288498
nosy: gregory.p.smith
priority: normal
severity: normal
status: open
title: test suite intentionally avoids referring to localhost, destroying 
abstraction away from IPv6 vs IPv4
versions: Python 2.7, Python 3.6, Python 3.7

___
Python tracker 

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