Is it possible that you are looking at different classes? TaskWrapper's finish method does not use the job variable in my recently merged code either (line ~1045), while JobWrapper's does around line 315. cheers, jorrit On 09/18/2012 03:55 PM, Scott McManus wrote:
I have to admit that I'm a little confused as to why you would be getting this error at all - the "job" variable is introduced at line 298 in the same file, and it's used as the last variable to check_tool_output in the changeset you pointed to. (Also, thanks for pointing to it - that made investigating easier.)
Is it possible that there was a merge problem when you pulled the latest set of code? For my own sanity, would you mind downloading a fresh copy of galaxy-central or galaxy-dist into a separate directory and see if the problem is still there? (I fully admit that there could be a bug that I left in, but all job runners should have stumbled across the same problem - the "finish" method should be called by all job runners.)
Thanks again!
-Scott
----- Original Message -----
I'll check it out. Thanks.
----- Original Message -----
Hi all (and in particular, Scott),
I've just updated my development server and found the following error when running jobs on our SGE cluster via DRMMA:
galaxy.jobs.runners.drmaa ERROR 2012-09-18 09:43:20,698 Job wrapper finish method failed Traceback (most recent call last): File "/mnt/galaxy/galaxy-central/lib/galaxy/jobs/runners/drmaa.py", line 371, in finish_job drm_job_state.job_wrapper.finish( stdout, stderr, exit_code ) File "/mnt/galaxy/galaxy-central/lib/galaxy/jobs/__init__.py", line 1048, in finish if ( self.check_tool_output( stdout, stderr, tool_exit_code ) ): TypeError: check_tool_output() takes exactly 5 arguments (4 given)
This looks to have been introduced in this commit: https://bitbucket.org/galaxy/galaxy-central/changeset/f557b7b05fdd701cbf99ee...
There should be an additional jobs argument, proposed fix:
$ hg diff lib/galaxy/jobs/__init__.py diff -r 4007494e37e1 lib/galaxy/jobs/__init__.py --- a/lib/galaxy/jobs/__init__.py Tue Sep 18 09:40:19 2012 +0100 +++ b/lib/galaxy/jobs/__init__.py Tue Sep 18 10:06:44 2012 +0100 @@ -1045,7 +1045,8 @@ # Check what the tool returned. If the stdout or stderr matched # regular expressions that indicate errors, then set an error. # The same goes if the tool's exit code was in a given range. - if ( self.check_tool_output( stdout, stderr, tool_exit_code ) ): + job = self.get_job() + if ( self.check_tool_output( stdout, stderr, tool_exit_code, job ) ): task.state = task.states.OK else: task.state = task.states.ERROR
(Let me know if you want this as a pull request - it seems a lot of effort for a tiny change.)
Regards,
Peter
___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at:
___________________________________________________________ Please keep all replies on the list by using "reply all" in your mail client. To manage your subscriptions to this and other Galaxy lists, please use the interface at: