Transient Windows test failures

Matt Harbison mharbison72 at gmail.com
Fri Jun 16 00:18:18 EDT 2017


On Thu, 15 Jun 2017 22:47:39 -0400, Matt Harbison <mharbison72 at gmail.com>  
wrote:

> (CC: mailing list)
>
> On Thu, 15 Jun 2017 22:12:25 -0400, Matt Harbison  
> <mharbison72 at gmail.com> wrote:
>
>> On Sat, 10 Jun 2017 02:55:47 -0400, Matt Harbison  
>> <mharbison72 at gmail.com> wrote:
>>
>>> In the last day, I've had a handful of tests fail like so, over  
>>> several runs:
>>
>>>
>>> About a week ago I also started noticing occasional errors like these:
>>>
>>> --- c:/Users/Matt/projects/hg/tests/test-graft.t
>>> +++ c:/Users/Matt/projects/hg/tests/test-graft.t.err
>>> @@ -324,12 +324,14 @@
>>>
>>>   Graft again onto another branch should preserve the original source
>>>     $ hg up -q 0
>>> +  abort: Invalid Signature
>>> +  [255]
>>>     $ echo 'g'>g
>>>     $ hg add g
>>>     $ hg ci -m 7
>>> -  created new head
>>>     $ hg graft 7
>>> -  grafting 7:ef0ef43d49e7 "2"
>>> +  skipping ancestor revision 7:ef0ef43d49e7
>>> +  [255]
>>>
>>>     $ hg log -r 7 --template '{rev}:{node}\n'
>>>     7:ef0ef43d49e79e81ddafdc7997401ba0041efc82
>>
>> Got lucky, and hit one where the stack was dumped:
>>
>> --- c:/Users/Matt/projects/hg/tests/test-hgweb-commands.t
>> +++ c:/Users/Matt/projects/hg/tests/test-hgweb-commands.t.err
>> @@ -1238,14 +1238,21 @@
>>
>>     foo
>>     $ get-with-headers.py $LOCALIP:$HGPORT 'annotate/1/foo/?style=raw'
>> -  200 Script output follows
>> -
>> -
>> -  test at 0: foo
>> -
>> -
>> -
>> -
>> +  Traceback (most recent call last):\r (esc)
>> +    File "c:/Users/Matt/projects/hg/tests/get-with-headers.py", line  
>> 12, in <module>\r (esc)
>> +      from mercurial import (\r (esc)
>> +    File "c:\\Users\\Matt\\projects\\hg\\mercurial\\util.py", line 37,  
>> in <module>\r (esc)
>> +      import tempfile\r (esc)
>> +    File "c:\\Python27\\lib\\tempfile.py", line 35, in <module>\r (esc)
>> +      from random import Random as _Random\r (esc)
>> +    File "c:\\Python27\\lib\\random.py", line 885, in <module>\r (esc)
>> +      _inst = Random()\r (esc)
>> +    File "c:\\Python27\\lib\\random.py", line 97, in __init__\r (esc)
>> +      self.seed(x)\r (esc)
>> +    File "c:\\Python27\\lib\\random.py", line 113, in seed\r (esc)
>> +      a = long(_hexlify(_urandom(2500)), 16)\r (esc)
>> +  WindowsError: [Error -2146893818] Invalid Signature\r (esc)
>> +  [1]
>>     $ get-with-headers.py $LOCALIP:$HGPORT 'file/1/?style=raw'
>>     200 Script output follows
>>
>> I can't say that I remember the WindowsError last time I saw the stack.

So apparently, this is a symptom of not having %SystemRoot% in the  
environment when calling CreateProcess().

https://bugs.python.org/issue13524
https://jpassing.com/2009/12/28/the-hidden-danger-of-forgetting-to-specify-systemroot-in-a-custom-environment-block/

I see that setup.py special cases this variable.  I did a search for 'env  
=', and it looks like hooks and pager start with empty environments, so  
they must not inherit this.  IDR if any recent changes were made that  
start with an empty environment.

The thing I can't get my mind around is the hit and miss nature of the  
error, if this is really the problem.


More information about the Mercurial-devel mailing list