<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16674" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>* writeto:<BR>header = (3, 1, 3, 0)<BR>Length: 12,
Binary: 0x['00', '03', '00', '01', '00', '00', '00', '03', '00', '00', '00',
'00']</FONT></DIV>
<DIV><FONT face=Arial size=2> </DIV></FONT>
<DIV><FONT face=Arial size=2>* readfrom:<BR>header = (768, 256, 768,
0)<BR>Length: 12, Binary: 0x['03', '00', '01', '00', '00', '00', '03', '00',
'00', '00', '00', '00']</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</DIV></FONT>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Another stuff that I don't understand:
</FONT></DIV>
<DIV><FONT face=Arial size=2>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 ?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Baptiste.</FONT></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=blep@users.sourceforge.net
href="mailto:blep@users.sourceforge.net">Baptiste Lepilleur</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=py-dev@codespeak.net
href="mailto:py-dev@codespeak.net">py-dev@codespeak.net</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, July 05, 2008 10:03
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [py-dev] py.test --looponfailing
started failing on Windows...</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>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...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Environment: Python 2.5.2 on Windows XP SP3 32
bits and py-0.9.1 install via setup.py.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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 ?)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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: </FONT></DIV>
<DIV><FONT face=Arial size=2>If I starts the test with disabled stdout capture
(py.test -v -s) , then the test remain stuck on:</FONT></DIV>
<DIV><FONT face=Arial size=2> test_gateway.py:91
TestPopenGateway().test_correct_setup_no_py,</FONT></DIV>
<DIV><FONT face=Arial size=2>If I starts the test normally (py.test -v), then
test run go farther but get stuck on:</FONT></DIV>
<DIV><FONT face=Arial size=2>test_gateway.py:405
TestPopenGateway().test_chdir_separation</FONT></DIV>
<DIV><FONT face=Arial size=2>Gateway debug trace for unit test do not show any
ValueError exception...</FONT></DIV>
<DIV><FONT face=Arial size=2>Unit tests output is at the end of the
mail.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Any help to understand where I should add traces
in the code to understand what is going on would be greatly
appreciated.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks,</FONT></DIV>
<DIV><FONT face=Arial size=2>Baptiste.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>* The failure:</FONT></DIV>
<DIV><FONT face=Arial
size=2>E:\prg\py\App\sbuilder\build\src\sbuilder\testing>py.test.py
-f<BR>* opening PopenGateway: C:\Python25\python.exe<BR>MASTER:
initiated slave terminal session -><BR>MASTER: send start info,
topdir=E:\prg\py\App\sbuilder\build\src<BR>Traceback (most recent call
last):<BR> File
"E:\prg\py\App\sbuilder\build\src\sbuilder\testing\py.test.py", line 4, in
<module><BR> py.test.cmdline.main()<BR> File
"c:\Python25\lib\site-packages\py\test\cmdline.py", line 15, in
main<BR> failures = session.main()<BR> File
"C:\Python25\lib\site-packages\py\test\terminal\remote.py", line 82, in
main<BR> failures =
self.run_remote_session(failures)<BR> File
"C:\Python25\lib\site-packages\py\test\terminal\remote.py", line 111, in
run_remote_session<BR> return channel.receive()<BR>
File "C:\Python25\lib\site-packages\py\execnet\channel.py", line 175, in
receive<BR> raise self._getremoteerror() or
EOFError()<BR>EOFError</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I enabled the gateway trace I found:</FONT></DIV>
<DIV><FONT face=Arial size=2>**** execnet-debug-3420:</FONT></DIV>
<DIV><FONT face=Arial size=2>sending gateway bootstrap
code<BR>Channel(3).__del__<BR>sent -> <Message.CHANNEL_LAST_MESSAGE
channelid=3 ''><BR>Channel(5).__del__<BR>sent ->
<Message.CHANNEL_LAST_MESSAGE channelid=5 ''><BR>sent ->
<Message.CHANNEL_OPEN channelid=1 len=111><BR>sent ->
<Message.CHANNEL_DATA channelid=1 len=456><BR>leaving
<Thread(receiver, started daemon)><BR>====================cleaning
up====================<BR>Channel(1).__del__<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>*** execnet-debug-2308 </DIV></FONT>
<DIV><FONT face=Arial size=2>Traceback (most recent call last):<BR> File
"<string>", line 359, in _thread_receiver<BR> File
"<string>", line 626, in readfrom<BR>ValueError: bad data
format</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>leaving <Thread(receiver, started
daemon)><BR>_servemain finished<BR>====================cleaning
up====================<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>*** Results of running the unit tests for
exec_net module</DIV></FONT>
<DIV><FONT face=Arial
size=2>C:\Python25\Lib\site-packages\py\execnet\testing>python
c:\Python25\Lib\site-packages\py\bin\py.test -v<BR>inserting into
sys.path: C:\Python25\Lib\site-packages<BR>============================= test
process starts =============================<BR>executable:
c:\Python25\python.exe (2.5.2-final-0)<BR>using py lib:
C:\Python25\Lib\site-packages\py <rev unknown><BR>test target:
C:\Python25\Lib\site-packages\py\execnet\testing<BR>initial conf 0:
C:\Python25\Lib\site-packages\py\test\defaultconftest.pyc<BR>initial conf 1:
C:\Python25\Lib\site-packages\py\conftest.pyc</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><FONT face=Arial size=2>
<DIV><BR>+ testmodule:
C:\Python25\Lib\site-packages\py\execnet\testing\test_gateway.py<BR>register.py:20
test_getsource_import_modules[0] ok
(0.00)<BR>register.py:20
test_getsource_import_modules[1] ok
(0.00)<BR>register.py:20
test_getsource_import_modules[2] ok
(0.00)<BR>register.py:20
test_getsource_import_modules[3] ok
(0.00)<BR>register.py:20
test_getsource_import_modules[4] ok (0.00)<BR>test_gateway.py:17
test_getsource_no_colision ok (0.00)<BR>test_gateway.py:30
test_stdouterrin_setnull ok (0.02)<BR>test_gateway.py:45
TestMessage().test_wire_protocol ok (0.00)<BR>test_gateway.py:61
TestPureChannel().test_factory_create ok
(0.00)<BR>test_gateway.py:67
TestPureChannel().test_factory_getitem ok
(0.00)<BR>test_gateway.py:73
TestPureChannel().test_channel_timeouterror ok
(0.02)<BR>test_gateway.py:85 TestPopenGateway().test_correct_setup
ok (0.08)<BR>test_gateway.py:88
TestPopenGateway().test_repr_doesnt_crash ok
(0.00)<BR>test_gateway.py:91
TestPopenGateway().test_correct_setup_no_py ok
(0.02)<BR>test_gateway.py:100
TestPopenGateway().test_remote_exec_waitclose ok
(0.00)<BR>test_gateway.py:104
TestPopenGateway().test_remote_exec_waitclose_2 ok
(0.00)<BR>test_gateway.py:108
TestPopenGateway().test_remote_exec_waitclose_noarg ok
(0.00)<BR>test_gateway.py:112
TestPopenGateway().test_remote_exec_error_after_close ok
(0.00)<BR>test_gateway.py:117
TestPopenGateway().test_remote_exec_channel_anonymous ok
(0.00)<BR>test_gateway.py:126
TestPopenGateway().test_channel_close_and_then_receive_error ok
(0.00)<BR>test_gateway.py:130
TestPopenGateway().test_channel_finish_and_then_EOFError ok
(0.00)<BR>test_gateway.py:138
TestPopenGateway().test_channel_close_and_then_receive_error_multiple ok
(0.00)</DIV>
<DIV> </DIV>
<DIV>test_gateway.py:144 TestPopenGateway().test_channel__local_close ok
(0.00)<BR>test_gateway.py:149
TestPopenGateway().test_channel__local_close_error ok
(0.00)<BR>test_gateway.py:155
TestPopenGateway().test_channel_error_reporting ok
(0.00)<BR>test_gateway.py:166
TestPopenGateway().test_channel_syntax_error ok
(0.00)<BR>test_gateway.py:175 TestPopenGateway().test_channel_iter ok
(0.00)<BR>test_gateway.py:183
TestPopenGateway().test_channel_passing_over_channel ok
(0.00)<BR>test_gateway.py:202
TestPopenGateway().test_channel_receiver_callback ok
(0.00)<BR>test_gateway.py:217
TestPopenGateway().test_channel_callback_after_receive ok
(0.02)<BR>test_gateway.py:233
TestPopenGateway().test_waiting_for_callbacks ok
(0.22)<BR>test_gateway.py:245
TestPopenGateway().test_channel_callback_stays_active ok
(0.75)<BR>test_gateway.py:275
TestPopenGateway().test_channel_callback_remote_freed ok
(0.75)<BR>test_gateway.py:279
TestPopenGateway().test_channel_endmarker_callback ok
(0.00)<BR>test_gateway.py:294
TestPopenGateway().test_remote_redirect_stdout ok
(0.00)<BR>test_gateway.py:303
TestPopenGateway().test_remote_exec_redirect_multi ok
(0.00)<BR>test_gateway.py:318 TestPopenGateway().test_channel_file ok
(0.00)<BR>test_gateway.py:330
TestPopenGateway().test_channel_file_write_error ok
(0.00)<BR>test_gateway.py:336
TestPopenGateway().test_channel_file_proxyclose ok
(0.02)<BR>test_gateway.py:347
TestPopenGateway().test_confusion_from_os_write_stdout ok
(0.00)<BR>test_gateway.py:361
TestPopenGateway().test_confusion_from_os_write_stderr ok
(0.00)<BR>test_gateway.py:375
TestPopenGateway().test_non_reverse_execution ok
(0.03)<BR>test_gateway.py:405 TestPopenGateway().test_chdir_separation
^C<BR>C:\Python25\Lib\site-packages\py\execnet\testing></DIV>
<DIV> </DIV>
<DIV>---<BR>Baptiste Lepilleur <<A
href="mailto:blep@users.sourceforge.net">blep@users.sourceforge.net</A>><BR></FONT></DIV>
<P>
<HR>
<P></P>_______________________________________________<BR>py-dev mailing
list<BR>py-dev@codespeak.net<BR>http://codespeak.net/mailman/listinfo/py-dev<BR></BLOCKQUOTE></BODY></HTML>