Hi, I forgot to mention, but the wxPython App.MainLoop() method, which launches and runs the GUI indefinitely, can only be executed in the main Python thread. I am debugging at the moment to try to work out if this is indeed the case in the test-suite.
Cheers, Edward On 25 August 2011 15:21, Edward d'Auvergne <[email protected]> wrote: > Hi, > > That's great that you have time, to have this working properly is > quite important. I didn't realise how much of an issue the merging of > the multi-processor code and GUI code would be. I have now merged the > multi-processor branch into the main 1.3 line, as well as the new GUI > branch, and that is where the problems are. I think there are at > least 2 problems currently occurring. The first has to do with the > GUI tests: > > $ relax --gui-test > > I looks like that there is a clash of the wxPython App.MainLoop() and > how the master processors of the multi package interact. There > appears to be race conditions, even in the uni-processor fabric. This > only occurs in the test-suite, I have just tested manual operation of > the GUI which works, so this makes things more difficult. The problem > was not existent in the gui_testing branch (svn co > svn+ssh://[email protected]/svn/relax/branches/gui_testing/@14200) > until after the multi-processor code was merged. > > > The second problem is IO redirection. This occurs in a number of > places in relax. These include: > > 1) The --log command line flag which causes STDOUT and STDERR to be > sent to file. > > 2) The --tee command line flag which causes STDOUT and STDERR to be > sent both to file and to the terminal. > > 3) The test suite. The STDOUT and STDERR streams are caught and only > sent to STDERR if there is an error or failure in a test. > > 4) The relax controller (part of the GUI). This is a window to which > STDOUT and STDERR are directed. In the test-suite mode, the streams > also output to the terminal. > > 5) The multi-processor package. There are two parts. The first is > essentially a pre-filter which prepends certain tokens to the IO > stream (i.e. the 'M |', 'M E|', and 'S 1|' text). I cannot see how > we can do this as 4) is always set up after 5). So I am considering > removing this part. It will make it more difficult with debugging, > but I can see no other way. > > 6) The second part for the multi-processor package, which is > currently non-functional, is the catching of the IO streams of the > slave processes to send back to the master. I will try to mimic the > relax controller code here and store all slave text as a list with > flags specifying whether it is STDOUT or STDERR. Then the list can be > returned to the master at which point the text can be sent to the two > streams. > > The problem is that at each point here, sys.stdout and sys.stderr are > replaced and the order in which this happens is impossible to change. > Well 4) will always be last. > > Regards, > > Edward > > > On 25 August 2011 14:51, Gary Thompson <[email protected]> wrote: >> On 08/25/2011 11:40 AM, Edward d'Auvergne wrote: >>> >>> Hi, >>> >>> I'm working on this at the moment. Unfortunately the main 1.3 line is >>> severely broken at the moment! The new multi-processor package is >>> clashing with and causing relax to die hard on the test-suite and the >>> GUI. The main cause is IO redirection of sys.stdout and sys.stderr. >>> The multi-processor code (even in uni-processor mode) is hijacking the >>> streams and the test suite and GUI do not know what to do anymore. >>> Once I eliminate all the IO redirection of the multi package, apart >>> from the IO capture on the slave processes which is non-functional >>> anyway, then the test-suite should be back in order. I noticed you >>> performed an svnmerge, and this is likely causing the breakages in >>> your branch. >>> >>> Regards, >>> >>> Edward >>> >>> >> >> Hi Ed >> I do at last have time to work on this, would you like me to have a look >> at what is going on? >> >> which branch do I need to look at? and what are the specific problems >> with the io redirect that need to be addressed? >> >> regards >> gary >> >> >>> On 25 August 2011 12:23, Sébastien Morin<[email protected]> >>> wrote: >>>> >>>> Hi Ed, >>>> >>>> While working on "inversion-recovery" branch, I realized that the system >>>> tests "Relax_fit.check_curve_fitting__exp_2param_neg" and >>>> "Relax_fit.check_curve_fitting__exp_3param_inv_neg" were failing. In >>>> order >>>> to pin point the problem, I checked on the main 1.3 branch (514439) and >>>> system test "Relax_fit.check_curve_fitting" also failed, with the same >>>> error: >>>> >>>> ========== >>>> ====================================================================== >>>> ERROR: check_curve_fitting (test_suite.system_tests.relax_fit.Relax_fit) >>>> Check the results of the curve-fitting. >>>> ---------------------------------------------------------------------- >>>> >>>> relax> pipe.create(pipe_name='mf', pipe_type='mf') >>>> Traceback (most recent call last): >>>> File >>>> >>>> "/Users/semor/Documents/pse-4/collaborations/relax/relax-1.3/test_suite/system_tests/relax_fit.py", >>>> line 60, in check_curve_fitting >>>> self.assertEqual(cdp.curve_type, 'exp') >>>> AttributeError: 'PipeContainer' object has no attribute 'curve_type' >>>> >>>> ---------------------------------------------------------------------- >>>> Ran 1 test in 0.001s >>>> >>>> FAILED (errors=1) >>>> ========== >>>> >>>> I tried changing the pipe type from "mf" to "relax_fit" (as it should >>>> be). >>>> This did not solve the issue... >>>> >>>> Any idea ? >>>> Thanks ! >>>> >>>> >>>> Séb :) >>>> >>>> -- >>>> Sébastien Morin, Ph.D. >>>> Postdoctoral Fellow, S. Grzesiek NMR Laboratory >>>> Department of Structural Biology >>>> Biozentrum, Universität Basel >>>> Klingelbergstrasse 70 >>>> 4056 Basel >>>> Switzerland >>>> >>>> >>>> _______________________________________________ >>>> relax (http://nmr-relax.com) >>>> >>>> This is the relax-devel mailing list >>>> [email protected] >>>> >>>> To unsubscribe from this list, get a password >>>> reminder, or change your subscription options, >>>> visit the list information page at >>>> https://mail.gna.org/listinfo/relax-devel >>>> >>> _______________________________________________ >>> relax (http://nmr-relax.com) >>> >>> This is the relax-devel mailing list >>> [email protected] >>> >>> To unsubscribe from this list, get a password >>> reminder, or change your subscription options, >>> visit the list information page at >>> https://mail.gna.org/listinfo/relax-devel >> >> >> -- >> ------------------------------------------------------------------- >> Dr Gary Thompson [Homans Lab Research Coordinator] >> >> Astbury Centre for Structural Molecular Biology, >> University of Leeds, >> Leeds, LS2 9JT, West-Yorkshire, UK Tel. +44-113-3433024 >> email: [email protected] Fax +44-113-3431935 >> ------------------------------------------------------------------- >> >> > _______________________________________________ relax (http://nmr-relax.com) This is the relax-devel mailing list [email protected] To unsubscribe from this list, get a password reminder, or change your subscription options, visit the list information page at https://mail.gna.org/listinfo/relax-devel

