[PATCH windows] tests: add and remove some (glob) markers
Matt Harbison
mharbison72 at gmail.com
Mon Sep 18 22:46:36 EDT 2017
On Sat, 16 Sep 2017 01:14:10 -0400, Matt Harbison <mharbison72 at gmail.com>
wrote:
> On Fri, 15 Sep 2017 22:14:31 -0400, Augie Fackler <raf at durin42.com>
> wrote:
>
>>
>>> On Sep 15, 2017, at 22:08, Augie Fackler <raf at durin42.com> wrote:
>>>
>>> # HG changeset patch
>>> # User Augie Fackler <augie at google.com>
>>> # Date 1505527705 14400
>>> # Fri Sep 15 22:08:25 2017 -0400
>>> # Node ID 0da0e691552a428641c75e1633e5f1d0fbf3483e
>>> # Parent 209120041d12b524648fa856732aa404dfedd91d
>>> tests: add and remove some (glob) markers
>>
>> These are the sane-looking failures on the Windows buildbot. The
>> run-tests failure looks like some sort of environment variable setting
>> dance is failing on Windows (huh?), and I'm singularly baffled by the
>> test-patchbomb-tls.t failure. But we're close to getting that builder
>> to pass.
>
> I'm baffled by the run-tests failure too. The test runs fine outside of
> buildbot on that system. Any chance you can force a debug run of this
> test, to see what is lurking behind $RUNTESTDIR?
>
> The patchbomb test failure is transient. I've seen cases where `hg
> serve` daemons from the previous run aren't killed for some reason.
> Aside from subsequent serve errors, a telltale sign is the warnings in
> the build phase dropping from 7 to 1, as the C code isn't rebuilt.
> (Compare before[1] and after[2] the Patch Tuesday reboot.) When I
> notice that, I have to manually kill off the stuck python process. But
> sometimes there is no stuck process, and these *.t errors clear on their
> own. I wonder if the serve process looks like it is running to the
> parent process, which stops waiting, but it hasn't opened the listening
> port yet when a test process tries to connect.
>
> I'll check Monday to see if python processes are stuck.
Yep, two stale processes needed to be killed.
The interesting thing is I used ProcessExplorer to track them down, and
CWD for them was a *.t directory with nothing in it other than an empty
'error.log'. (Both processes were using this file, apparently.) So I
hacked killdaemons.py to accept a pid on the command line instead of
reading the file, and both terminated successfully. It's like the pid
file was never processed (or empty) before deletion. A few months ago, I
was able to consistently reproduce a case where a test ran, the serve
process didn't exit, but I could kill it with the pid file left by the
test. It stopped happening the next day, but there's definitely flakiness
in this area.
Also, $RUNTESTDIR for these was the literal expected in the run-test
failure.
>
> [1]
> https://buildbot.mercurial-scm.org/builders/Win7%20x86_64%20hg%20tests/builds/181/steps/make%20local/logs/stdio
> [2]
> https://buildbot.mercurial-scm.org/builders/Win7%20x86_64%20hg%20tests/builds/183/steps/make%20local/logs/stdio
More information about the Mercurial-devel
mailing list