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