It looks like you have tools with no matching id in toolbox.tools_by_id.

Given the complexity of your job_conf.xml I assume you are using
multiple Galaxy processes? Have you installed stuff from the tool shed
or migrated tools and not restarted all Galaxy processes, or did you
try to restart processes but when failed to shutdown? I assume tool
shed installed tools are only available to the web process that
installed them, so the handler process must be restarted.

If restarting it doesn't work, I have attached a patch with added
logging that might help.

-John

On Thu, Nov 14, 2013 at 5:59 PM, Björn Grüning
<bjoern.gruen...@pharmazie.uni-freiburg.de> wrote:
> Hi John,
>
> please find attached my jobs_conf.xml file. I was not able to find any
> systematic in that error. It seems to happen not so often.
>
> Thanks,
> Bjoern
>
>> Hey Bjoern,
>>
>>   Can you post your job_conf.xml or send it to galaxy-b...@bx.psu.edu
>> if it has something sensitive in it, alternatively your runner urls if
>> you are still using the older format for specifying these things? Is
>> this for every job or just certain tools?
>>
>> -John
>>
>> On Thu, Nov 14, 2013 at 5:14 PM, Björn Grüning
>> <bjoern.gruen...@pharmazie.uni-freiburg.de> wrote:
>> > Hi,
>> >
>> > anyone has seen the following bug in Galaxy November release?
>> >
>> > galaxy.jobs.handler ERROR 2013-11-15 00:07:41,008 Failed to generate job
>> > destination
>> > Traceback (most recent call last):
>> >   File "/usr/local/galaxy/galaxy-dist/lib/galaxy/jobs/handler.py", line
>> > 311, in __check_if_ready_to_run
>> >     self.job_wrappers[job.id].job_destination
>> >   File "/usr/local/galaxy/galaxy-dist/lib/galaxy/jobs/__init__.py", line
>> > 620, in job_destination
>> >     return self.job_runner_mapper.get_job_destination(self.params)
>> >   File "/usr/local/galaxy/galaxy-dist/lib/galaxy/jobs/mapper.py", line
>> > 163, in get_job_destination
>> >     self.__cache_job_destination( params )
>> >   File "/usr/local/galaxy/galaxy-dist/lib/galaxy/jobs/mapper.py", line
>> > 148, in __cache_job_destination
>> >     raw_job_destination =
>> > self.job_wrapper.tool.get_job_destination( params )
>> > AttributeError: 'NoneType' object has no attribute 'get_job_destination'
>> >
>> >
>> > Thanks,
>> > Bjoern
>> >
>> > ___________________________________________________________
>> > 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:
>> >   http://lists.bx.psu.edu/
>> >
>> > To search Galaxy mailing lists use the unified search at:
>> >   http://galaxyproject.org/search/mailinglists/
>
>
From 9252a708e000662b045b89f7e6a085dba2ba3e7e Mon Sep 17 00:00:00 2001
From: John Chilton <jmchil...@gmail.com>
Date: Fri, 15 Nov 2013 10:57:51 -0600
Subject: Extra logging to track to job mapping problems.


diff --git a/lib/galaxy/jobs/__init__.py b/lib/galaxy/jobs/__init__.py
index 42fa027..d8c14da 100644
--- a/lib/galaxy/jobs/__init__.py
+++ b/lib/galaxy/jobs/__init__.py
@@ -559,6 +559,8 @@ class JobWrapper( object ):
         self.session_id = job.session_id
         self.user_id = job.user_id
         self.tool = queue.app.toolbox.tools_by_id.get( job.tool_id, None )
+        if self.tool is None:
+            log.warn("Failed to find tool associated with tool_id %s for job %s " % ( job.tool_id, job ) )
         self.queue = queue
         self.app = queue.app
         self.sa_session = self.app.model.context
diff --git a/lib/galaxy/jobs/mapper.py b/lib/galaxy/jobs/mapper.py
index e6d5b7c..3fddf93 100644
--- a/lib/galaxy/jobs/mapper.py
+++ b/lib/galaxy/jobs/mapper.py
@@ -145,7 +145,12 @@ class JobRunnerMapper( object ):
             raise Exception( "Unhandled dynamic job runner type specified - %s" % expand_type )
 
     def __cache_job_destination( self, params ):
-        raw_job_destination = self.job_wrapper.tool.get_job_destination( params )
+        tool = self.job_wrapper.tool
+        if tool is None:
+            msg = "job_wrapper %s is associated with no tool, job will be in problematic state" % ( self.job_wrapper )
+            log.warn( msg )
+            raise AttributeError( msg )
+        raw_job_destination = tool.get_job_destination( params )
         #raw_job_destination_id_or_tag = self.job_wrapper.tool.get_job_destination_id_or_tag( params )
         if raw_job_destination.runner == DYNAMIC_RUNNER_NAME:
             job_destination = self.__handle_dynamic_job_destination( raw_job_destination )
-- 
1.7.10.4

___________________________________________________________
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:
  http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/

Reply via email to