I managed to find where the readfrom code was. I added trace to the 
exec_net.Message class and it show that the initial 0x00 bytes is not recieved 
in readfrom.

* writeto:
header = (3, 1, 3, 0)
Length: 12, Binary: 0x['00', '03', '00', '01', '00', '00', '00', '03', '00', 
'00', '00', '00']

* readfrom:
header = (768, 256, 768, 0)
Length: 12, Binary: 0x['03', '00', '01', '00', '00', '00', '03', '00', '00', 
'00', '00', '00']

Now, were it gets weird is that I can get py.test -f working by adding the 
traces. I definetly get some non determinist behaviour there. The bug may be 
caused by some race condition that somehow has become more likely to occur.

Another stuff that I don't understand: 
I copied the mecanism from gateway.py to declare the "log" (the debug 
variable), and if the "log" variable is also named debug, then on the slave 
side, both message and gateway traces end-up in the message "log". The gateway 
log is created but never written into. Is it caused by the "magic" that send 
python code to the slave ?

Baptiste.
  ----- Original Message ----- 
  From: Baptiste Lepilleur 
  To: py-dev@codespeak.net 
  Sent: Saturday, July 05, 2008 10:03 AM
  Subject: [py-dev] py.test --looponfailing started failing on Windows...


  I'm stuck with this weird issue. py.test -f has worked perfectly for more 
than one month, but yesterday I got my first failure as shown below. The weird 
thing is that it restarted worked fine after failing a few times, but this 
morning it is impossible to get it working...

  Environment: Python 2.5.2 on Windows XP SP3 32 bits and py-0.9.1 install via 
setup.py.

  Below are the failure output when I start py.test -f, and the debug ouput of 
the gateway trace that I enabled. Anyone know how to get useful information 
about the remote exception (like source code... to help understand where this 
ValueError come from ?)

  I tried to run the gateway unit test, but they always get stuck. The strange 
thing is that it seems to be depend on how they are started with py.test: 
  If I starts the test with disabled stdout capture (py.test -v -s) , then the 
test remain stuck on:
   test_gateway.py:91   TestPopenGateway().test_correct_setup_no_py,
  If I starts the test normally (py.test -v), then test run go farther but get 
stuck on:
  test_gateway.py:405  TestPopenGateway().test_chdir_separation
  Gateway debug trace for unit test do not show any ValueError exception...
  Unit tests output is at the end of the mail.

  Any help to understand where I should add traces in the code to understand 
what is going on would be greatly appreciated.

  Thanks,
  Baptiste.

  * The failure:
  E:\prg\py\App\sbuilder\build\src\sbuilder\testing>py.test.py  -f
  * opening PopenGateway:  C:\Python25\python.exe
  MASTER: initiated slave terminal session ->
  MASTER: send start info, topdir=E:\prg\py\App\sbuilder\build\src
  Traceback (most recent call last):
    File "E:\prg\py\App\sbuilder\build\src\sbuilder\testing\py.test.py", line 
4, in <module>
      py.test.cmdline.main()
    File "c:\Python25\lib\site-packages\py\test\cmdline.py", line 15, in main
      failures = session.main()
    File "C:\Python25\lib\site-packages\py\test\terminal\remote.py", line 82, 
in main
      failures = self.run_remote_session(failures)
    File "C:\Python25\lib\site-packages\py\test\terminal\remote.py", line 111, 
in run_remote_session
      return channel.receive()
    File "C:\Python25\lib\site-packages\py\execnet\channel.py", line 175, in 
receive
      raise self._getremoteerror() or EOFError()
  EOFError

  I enabled the gateway trace I found:
  **** execnet-debug-3420:
  sending gateway bootstrap code
  Channel(3).__del__
  sent -> <Message.CHANNEL_LAST_MESSAGE channelid=3 ''>
  Channel(5).__del__
  sent -> <Message.CHANNEL_LAST_MESSAGE channelid=5 ''>
  sent -> <Message.CHANNEL_OPEN channelid=1 len=111>
  sent -> <Message.CHANNEL_DATA channelid=1 len=456>
  leaving <Thread(receiver, started daemon)>
  ====================cleaning up====================
  Channel(1).__del__


  *** execnet-debug-2308 
  Traceback (most recent call last):
    File "<string>", line 359, in _thread_receiver
    File "<string>", line 626, in readfrom
  ValueError: bad data format

  leaving <Thread(receiver, started daemon)>
  _servemain finished
  ====================cleaning up====================


  *** Results of running the unit tests for exec_net module
  C:\Python25\Lib\site-packages\py\execnet\testing>python 
c:\Python25\Lib\site-packages\py\bin\py.test -v
  inserting into sys.path: C:\Python25\Lib\site-packages
  ============================= test process starts 
=============================
  executable:   c:\Python25\python.exe  (2.5.2-final-0)
  using py lib: C:\Python25\Lib\site-packages\py <rev unknown>
  test target:  C:\Python25\Lib\site-packages\py\execnet\testing
  initial conf 0: C:\Python25\Lib\site-packages\py\test\defaultconftest.pyc
  initial conf 1: C:\Python25\Lib\site-packages\py\conftest.pyc


  + testmodule: C:\Python25\Lib\site-packages\py\execnet\testing\test_gateway.py
  register.py:20       test_getsource_import_modules[0] ok (0.00)
  register.py:20       test_getsource_import_modules[1] ok (0.00)
  register.py:20       test_getsource_import_modules[2] ok (0.00)
  register.py:20       test_getsource_import_modules[3] ok (0.00)
  register.py:20       test_getsource_import_modules[4] ok (0.00)
  test_gateway.py:17   test_getsource_no_colision ok (0.00)
  test_gateway.py:30   test_stdouterrin_setnull ok (0.02)
  test_gateway.py:45   TestMessage().test_wire_protocol ok (0.00)
  test_gateway.py:61   TestPureChannel().test_factory_create ok (0.00)
  test_gateway.py:67   TestPureChannel().test_factory_getitem ok (0.00)
  test_gateway.py:73   TestPureChannel().test_channel_timeouterror ok (0.02)
  test_gateway.py:85   TestPopenGateway().test_correct_setup ok (0.08)
  test_gateway.py:88   TestPopenGateway().test_repr_doesnt_crash ok (0.00)
  test_gateway.py:91   TestPopenGateway().test_correct_setup_no_py ok (0.02)
  test_gateway.py:100  TestPopenGateway().test_remote_exec_waitclose ok (0.00)
  test_gateway.py:104  TestPopenGateway().test_remote_exec_waitclose_2 ok (0.00)
  test_gateway.py:108  TestPopenGateway().test_remote_exec_waitclose_noarg ok 
(0.00)
  test_gateway.py:112  TestPopenGateway().test_remote_exec_error_after_close ok 
(0.00)
  test_gateway.py:117  TestPopenGateway().test_remote_exec_channel_anonymous ok 
(0.00)
  test_gateway.py:126  
TestPopenGateway().test_channel_close_and_then_receive_error ok (0.00)
  test_gateway.py:130  TestPopenGateway().test_channel_finish_and_then_EOFError 
ok (0.00)
  test_gateway.py:138  
TestPopenGateway().test_channel_close_and_then_receive_error_multiple ok (0.00)

  test_gateway.py:144  TestPopenGateway().test_channel__local_close ok (0.00)
  test_gateway.py:149  TestPopenGateway().test_channel__local_close_error ok 
(0.00)
  test_gateway.py:155  TestPopenGateway().test_channel_error_reporting ok (0.00)
  test_gateway.py:166  TestPopenGateway().test_channel_syntax_error ok (0.00)
  test_gateway.py:175  TestPopenGateway().test_channel_iter ok (0.00)
  test_gateway.py:183  TestPopenGateway().test_channel_passing_over_channel ok 
(0.00)
  test_gateway.py:202  TestPopenGateway().test_channel_receiver_callback ok 
(0.00)
  test_gateway.py:217  TestPopenGateway().test_channel_callback_after_receive 
ok (0.02)
  test_gateway.py:233  TestPopenGateway().test_waiting_for_callbacks ok (0.22)
  test_gateway.py:245  TestPopenGateway().test_channel_callback_stays_active ok 
(0.75)
  test_gateway.py:275  TestPopenGateway().test_channel_callback_remote_freed ok 
(0.75)
  test_gateway.py:279  TestPopenGateway().test_channel_endmarker_callback ok 
(0.00)
  test_gateway.py:294  TestPopenGateway().test_remote_redirect_stdout ok (0.00)
  test_gateway.py:303  TestPopenGateway().test_remote_exec_redirect_multi ok 
(0.00)
  test_gateway.py:318  TestPopenGateway().test_channel_file ok (0.00)
  test_gateway.py:330  TestPopenGateway().test_channel_file_write_error ok 
(0.00)
  test_gateway.py:336  TestPopenGateway().test_channel_file_proxyclose ok (0.02)
  test_gateway.py:347  TestPopenGateway().test_confusion_from_os_write_stdout 
ok (0.00)
  test_gateway.py:361  TestPopenGateway().test_confusion_from_os_write_stderr 
ok (0.00)
  test_gateway.py:375  TestPopenGateway().test_non_reverse_execution ok (0.03)
  test_gateway.py:405  TestPopenGateway().test_chdir_separation ^C
  C:\Python25\Lib\site-packages\py\execnet\testing>

  ---
  Baptiste Lepilleur <[EMAIL PROTECTED]>



------------------------------------------------------------------------------


  _______________________________________________
  py-dev mailing list
  py-dev@codespeak.net
  http://codespeak.net/mailman/listinfo/py-dev
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to