> On Feb 15, 2017, at 11:24 PM, Martin von Zweigbergk <martinv...@google.com> 
> wrote:
> 
> On Wed, Feb 15, 2017 at 8:23 PM, Martin von Zweigbergk
> <martinv...@google.com> wrote:
>> On Wed, Feb 15, 2017 at 8:12 PM, Augie Fackler <r...@durin42.com> wrote:
>>> 
>>>> On Feb 9, 2017, at 8:59 AM, Jun Wu <qu...@fb.com> wrote:
>>>> 
>>>> # HG changeset patch
>>>> # User Jun Wu <qu...@fb.com>
>>>> # Date 1486648674 28800
>>>> #      Thu Feb 09 05:57:54 2017 -0800
>>>> # Node ID 93e23f7b87a4ab456053b6ba573615be16c6c4b0
>>>> # Parent  a68510b69f413545722c086eaeb840dd5e8305b4
>>>> # Available At https://bitbucket.org/quark-zju/hg-draft
>>>> #              hg pull https://bitbucket.org/quark-zju/hg-draft -r 
>>>> 93e23f7b87a4
>>>> runtests: check ports on IPv6 address
>>> 
>>> This has made test-bundle2-remote-changegroup.t flaky when run in parallel 
>>> with other tests. I was able to bisect with this:
>>> 
>>> cd tests && python run-tests.py -j 100 --runs-per-test 400 
>>> test-bundle2-remote-changegroup.t
>>> 
>>> fails in about 70 out of the 400 runs. I also see it periodically when 
>>> running the tests with -j120 on gcc112 from the gcc compile farm, which is 
>>> a POWER8 machine with 160 hardware threads. I suspect you can reproduce it 
>>> with a lower -j if you run the test enough times, but I’m up later than I 
>>> should be already, so I didn’t bother logging in to a smaller linux machine 
>>> to confirm.
>>> 
>>> Can you take a look?
>> 
>> Heh, I reported the flakiness on #mercurial earlier today. That's why
>> Jun sent a series of patches maybe 2 hours ago that you then queued.
>> Have you tested with those patches applied? I have not had time to
>> look at his patches, but maybe he should have explained their
>> motivation better if this is indeed the same problem that I reported.
> 
> Or maybe I just incorrectly assumed that the problems I reported with
> ports not being available had the same root cause as the flaky
> test-bundle2-remote-changegroup.t?

test-bundle2-remote-changegroup.t is still flaky for me at 1ee68, which I 
believe includes the series you mentioned :/


> 
>> 
>>> 
>>> Thanks!
>>> Augie
>>> 
>>>> Previously, checkportisavailable only checks ports on the IPv4 address. 
>>>> This
>>>> patch makes it check IPv6 as well. It'll be useful if "localhost" does not
>>>> have an IPv4 address, or its IPv4 address does not exist somehow.
>>>> 
>>>> diff --git a/tests/run-tests.py b/tests/run-tests.py
>>>> --- a/tests/run-tests.py
>>>> +++ b/tests/run-tests.py
>>>> @@ -115,13 +115,17 @@ wifexited = getattr(os, "WIFEXITED", lam
>>>> def checkportisavailable(port):
>>>>    """return true if a port seems free to bind on localhost"""
>>>> -    try:
>>>> -        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>>> -        s.bind(('localhost', port))
>>>> -        s.close()
>>>> -        return True
>>>> -    except socket.error as exc:
>>>> -        if not exc.errno == errno.EADDRINUSE:
>>>> -            raise
>>>> -        return False
>>>> +    families = [getattr(socket, i, None)
>>>> +                for i in ('AF_INET', 'AF_INET6')
>>>> +                if getattr(socket, i, None) is not None]
>>>> +    for family in families:
>>>> +        try:
>>>> +            s = socket.socket(family, socket.SOCK_STREAM)
>>>> +            s.bind(('localhost', port))
>>>> +            s.close()
>>>> +            return True
>>>> +        except socket.error as exc:
>>>> +            if exc.errno not in (errno.EADDRINUSE, errno.EADDRNOTAVAIL):
>>>> +                raise
>>>> +    return False
>>>> 
>>>> closefds = os.name == 'posix'
>>>> _______________________________________________
>>>> Mercurial-devel mailing list
>>>> Mercurial-devel@mercurial-scm.org
>>>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>>> 
>>> _______________________________________________
>>> Mercurial-devel mailing list
>>> Mercurial-devel@mercurial-scm.org
>>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to