On Sat, Jul 05, 2008 at 10:49 +0200, Baptiste Lepilleur wrote:
> 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']

doesn't this look like a network versus host byte order issue?
Can't imagine how this will only sometimes happen, though. 

i am soon leaving for EP2008 so cannot dig deeper for now. 
let me know about any more observations. 

thanks & best, 

holger


> 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


-- 
collaborative expert contracting: http://merlinux.eu 
pylib py.test/greenlets/svn APIs: http://pylib.org 
PyPy  Python/Compiler tool chain: http://codespeak.net/pypy 
_______________________________________________
py-dev mailing list
py-dev@codespeak.net
http://codespeak.net/mailman/listinfo/py-dev

Reply via email to