Workflow param error leads to template error
Looking for pointers on what might be causing this problem: A user had a moderately complicated workflow that when run under certain parameter values results in a traceback that ends: Module workflow_run_mako:232 in render_body
for ic in oc.input_step.module.get_data_inputs(): AttributeError: 'WorkflowStep' object has no attribute 'module'
After some puzzling, I realized one of the parameters was outside the allowed range (a max on an integer param) and that Galaxy was trying to render "run.mako" flagging up the error but erroring out. Why Galaxy tries to call this non-existent member is unclear to me. Any insight or places I should start exploring? Galaxy version: various (started with an 6-month old one, upgraded to latest production to see if it would fix error, it didn't) Hosting OS: CentOS 6 ------ Paul Agapow (paul-michael.agapow@hpa.org.uk) Bioinformatics, Health Protection Agency (UK) ************************************************************************** The information contained in the EMail and any attachments is confidential and intended solely and for the attention and use of the named addressee(s). It may not be disclosed to any other person without the express authority of the HPA, or the intended recipient, or both. If you are not the intended recipient, you must not disclose, copy, distribute or retain this message or any part of it. This footnote also confirms that this EMail has been swept for computer viruses by Symantec.Cloud, but please re-sweep any attachments before opening or saving. HTTP://www.HPA.org.uk **************************************************************************
Dear Devs, I recently ran into a problem where attempting to run a workflow resulted in an uninformative error and a traceback in the logs, that I put into Google. This led me to the message below from 2012. As far as I can see it got no reply at the time and I have hit the same issue. I modified database/compiled_templates/workflow/run.mako.py and this resulted in a much more useful error report appearing in the browser. Obviously this is a generated file, so attached is a patch for templates/webapps/galaxy/workflow/run.mako that I propose you add to Galaxy. As you'll see it just adds a single "try" block and then ignores the exception, which I would say in this case is not actually a bad thing to do even if it is not the ideal fix. Should be fairly explanatory from the patch. Cheers, TIM Way way back in Jun 2012, Paul-Michael.Agapow at hpa.org.uk wrote:
Looking for pointers on what might be causing this problem:
A user had a moderately complicated workflow that when run under certain parameter values results in a traceback that ends:
Module workflow_run_mako:232 in render_body
for ic in oc.input_step.module.get_data_inputs(): AttributeError: 'WorkflowStep' object has no attribute 'module'
After some puzzling, I realized one of the parameters was outside the allowed range (a max on an integer param) and that Galaxy was trying to render "run.mako" flagging up the error but erroring out. Why Galaxy tries to call this non-existent member is unclear to me. Any insight or places I should start exploring?
Galaxy version: various (started with an 6-month old one, upgraded to latest production to see if it would fix error, it didn't) Hosting OS: CentOS 6
------ Paul Agapow (paul-michael.agapow at hpa.org.uk) Bioinformatics, Health Protection Agency (UK)
-- Tim Booth <tbooth@ceh.ac.uk> NERC Environmental Bioinformatics Centre Centre for Ecology and Hydrology Maclean Bldg, Benson Lane Crowmarsh Gifford Wallingford, England OX10 8BB http://nebc.nerc.ac.uk +44 1491 69 2705
Hi Tim, Thanks for this. If you still have it handy, what was the exact attribute error? -Dannon On Thu, Sep 18, 2014 at 10:28 AM, Tim Booth <tbooth@ceh.ac.uk> wrote:
Dear Devs,
I recently ran into a problem where attempting to run a workflow resulted in an uninformative error and a traceback in the logs, that I put into Google. This led me to the message below from 2012. As far as I can see it got no reply at the time and I have hit the same issue.
I modified database/compiled_templates/workflow/run.mako.py and this resulted in a much more useful error report appearing in the browser. Obviously this is a generated file, so attached is a patch for templates/webapps/galaxy/workflow/run.mako that I propose you add to Galaxy. As you'll see it just adds a single "try" block and then ignores the exception, which I would say in this case is not actually a bad thing to do even if it is not the ideal fix. Should be fairly explanatory from the patch.
Cheers,
TIM
Way way back in Jun 2012, Paul-Michael.Agapow at hpa.org.uk wrote:
Looking for pointers on what might be causing this problem:
A user had a moderately complicated workflow that when run under certain parameter values results in a traceback that ends:
Module workflow_run_mako:232 in render_body
for ic in oc.input_step.module.get_data_inputs(): AttributeError: 'WorkflowStep' object has no attribute 'module'
After some puzzling, I realized one of the parameters was outside the allowed range (a max on an integer param) and that Galaxy was trying to render "run.mako" flagging up the error but erroring out. Why Galaxy tries to call this non-existent member is unclear to me. Any insight or places I should start exploring?
Galaxy version: various (started with an 6-month old one, upgraded to latest production to see if it would fix error, it didn't) Hosting OS: CentOS 6
------ Paul Agapow (paul-michael.agapow at hpa.org.uk) Bioinformatics, Health Protection Agency (UK)
-- Tim Booth <tbooth@ceh.ac.uk> NERC Environmental Bioinformatics Centre
Centre for Ecology and Hydrology Maclean Bldg, Benson Lane Crowmarsh Gifford Wallingford, England OX10 8BB
http://nebc.nerc.ac.uk +44 1491 69 2705
___________________________________________________________ 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/
Hi Dannon, Here is the full trace from the log: === 138.253.25.15 - - [29/Aug/2014:19:16:01 +0100] "POST /galaxy/workflow/run?id=f597429621d6eb2b HTTP/1.1" 500 - "http://138.253.25.15/galaxy/workflow/run?id=f597429621d6eb2b" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" Error - <type 'exceptions.AttributeError'>: 'WorkflowStep' object has no attribute 'module' URL: http://138.253.25.15/galaxy/workflow/run?id=f597429621d6eb2b File '/usr/lib/galaxy-server/lib/galaxy/web/framework/middleware/error.py', line 149 in __call__ app_iter = self.application(environ, sr_checker) File '/usr/lib/galaxy-server/eggs/Paste-1.7.5.1-py2.7.egg/paste/recursive.py', line 84 in __call__ return self.application(environ, start_response) File '/usr/lib/galaxy-server/lib/galaxy/web/framework/middleware/remoteuser.py', line 94 in __call__ return self.app( environ, start_response ) File '/usr/lib/galaxy-server/eggs/Paste-1.7.5.1-py2.7.egg/paste/httpexceptions.py', line 633 in __call__ return self.application(environ, start_response) File '/usr/lib/galaxy-server/lib/galaxy/web/framework/base.py', line 132 in __call__ return self.handle_request( environ, start_response ) File '/usr/lib/galaxy-server/lib/galaxy/web/framework/base.py', line 190 in handle_request body = method( trans, **kwargs ) File '/usr/lib/galaxy-server/lib/galaxy/webapps/galaxy/controllers/workflow.py', line 1410 in run enable_unique_defaults=trans.app.config.enable_unique_workflow_defaults) File '/usr/lib/galaxy-server/lib/galaxy/web/framework/__init__.py', line 1194 in fill_template return self.fill_template_mako( filename, **kwargs ) File '/usr/lib/galaxy-server/lib/galaxy/web/framework/__init__.py', line 1209 in fill_template_mako return template.render( **data ) File '/usr/lib/galaxy-server/eggs/Mako-0.4.1-py2.7.egg/mako/template.py', line 296 in render return runtime._render(self, self.callable_, args, data) File '/usr/lib/galaxy-server/eggs/Mako-0.4.1-py2.7.egg/mako/runtime.py', line 660 in _render **_kwargs_for_callable(callable_, data)) File '/usr/lib/galaxy-server/eggs/Mako-0.4.1-py2.7.egg/mako/runtime.py', line 692 in _render_context _exec_template(inherit, lclcontext, args=args, kwargs=kwargs) File '/usr/lib/galaxy-server/eggs/Mako-0.4.1-py2.7.egg/mako/runtime.py', line 718 in _exec_template callable_(context, *args, **kwargs) File '/usr/lib/galaxy-server/database/compiled_templates/base.mako.py', line 66 in render_body __M_writer(unicode(next.body())) File '/usr/lib/galaxy-server/database/compiled_templates/workflow/run.mako.py', line 257 in render_body for ic in oc.input_step.module.get_data_inputs(): AttributeError: 'WorkflowStep' object has no attribute 'module' === Cheers, TIM On Thu, 2014-09-18 at 22:12 +0100, Dannon Baker wrote:
Hi Tim,
Thanks for this. If you still have it handy, what was the exact attribute error?
-Dannon
On Thu, Sep 18, 2014 at 10:28 AM, Tim Booth <tbooth@ceh.ac.uk> wrote: Dear Devs,
I recently ran into a problem where attempting to run a workflow resulted in an uninformative error and a traceback in the logs, that I put into Google. This led me to the message below from 2012. As far as I can see it got no reply at the time and I have hit the same issue.
I modified database/compiled_templates/workflow/run.mako.py and this resulted in a much more useful error report appearing in the browser. Obviously this is a generated file, so attached is a patch for templates/webapps/galaxy/workflow/run.mako that I propose you add to Galaxy. As you'll see it just adds a single "try" block and then ignores the exception, which I would say in this case is not actually a bad thing to do even if it is not the ideal fix. Should be fairly explanatory from the patch.
Cheers,
TIM
Way way back in Jun 2012, Paul-Michael.Agapow at hpa.org.uk wrote:
> Looking for pointers on what might be causing this problem: > > A user had a moderately complicated workflow that when run under certain parameter values results in a traceback that ends: > > Module workflow_run_mako:232 in render_body > >> for ic in oc.input_step.module.get_data_inputs(): > AttributeError: 'WorkflowStep' object has no attribute 'module' > > After some puzzling, I realized one of the parameters was outside the allowed range (a max on an integer param) and that Galaxy was trying to render "run.mako" flagging up the error but erroring out. Why Galaxy tries to call this non-existent member is unclear to me. Any insight or places I should start exploring? > > Galaxy version: various (started with an 6-month old one, upgraded to latest production to see if it would fix error, it didn't) > Hosting OS: CentOS 6 > > ------ > Paul Agapow (paul-michael.agapow at hpa.org.uk) > Bioinformatics, Health Protection Agency (UK) > -- Tim Booth <tbooth@ceh.ac.uk> NERC Environmental Bioinformatics Centre
Centre for Ecology and Hydrology Maclean Bldg, Benson Lane Crowmarsh Gifford Wallingford, England OX10 8BB
http://nebc.nerc.ac.uk +44 1491 69 2705
___________________________________________________________ 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/
-- Tim Booth <tbooth@ceh.ac.uk> NERC Environmental Bioinformatics Centre Centre for Ecology and Hydrology Maclean Bldg, Benson Lane Crowmarsh Gifford Wallingford, England OX10 8BB http://nebc.nerc.ac.uk +44 1491 69 2705
participants (3)
-
Dannon Baker
-
Paul-Michael Agapow
-
Tim Booth