galaxyproject / galaxy

Data intensive science for everyone.
https://galaxyproject.org
Other
1.41k stars 1.01k forks source link

file source plugin is a little bit picky with config errors #11766

Open bgruening opened 3 years ago

bgruening commented 3 years ago

It happens often to me that a wrong parameter in one of the file-source plugins can turn down all uploads from Galaxy. All uploads means also normal file uploads or pasted-text.

A current error I see (and not even sure why atm) is this one:

Traceback (most recent call last):
  File "/opt/galaxy/server/lib/galaxy/jobs/runners/__init__.py", line 237, in prepare_job
    job_wrapper.prepare()
  File "/opt/galaxy/server/lib/galaxy/jobs/__init__.py", line 1120, in prepare
    self.command_line, self.extra_filenames, self.environment_variables = tool_evaluator.build()
  File "/opt/galaxy/server/lib/galaxy/tools/evaluation.py", line 451, in build
    raise e
  File "/opt/galaxy/server/lib/galaxy/tools/evaluation.py", line 447, in build
    self.__build_config_files()
  File "/opt/galaxy/server/lib/galaxy/tools/evaluation.py", line 511, in __build_config_files
    config_text, is_template = self.__build_config_file_text(content)
  File "/opt/galaxy/server/lib/galaxy/tools/evaluation.py", line 599, in __build_config_file_text
    file_sources_dict = self.app.file_sources.to_dict(for_serialization=True, user_context=user_context)
  File "/opt/galaxy/server/lib/galaxy/files/__init__.py", line 155, in to_dict
    'file_sources': self.plugins_to_dict(for_serialization=for_serialization, user_context=user_context),
  File "/opt/galaxy/server/lib/galaxy/files/__init__.py", line 149, in plugins_to_dict
    el = file_source.to_dict(for_serialization=for_serialization, user_context=user_context)
  File "/opt/galaxy/server/lib/galaxy/files/sources/__init__.py", line 94, in to_dict
    rval.update(self._serialization_props(user_context=user_context))
  File "/opt/galaxy/server/lib/galaxy/files/sources/_pyfilesystem2.py", line 69, in _serialization_props
    effective_props[key] = self._evaluate_prop(val, user_context=user_context)
  File "/opt/galaxy/server/lib/galaxy/files/sources/__init__.py", line 129, in _evaluate_prop
    rval = fill_template(prop_val, context=template_context, futurized=True)
  File "/opt/galaxy/server/lib/galaxy/util/template.py", line 126, in fill_template
    raise first_exception or e
  File "/opt/galaxy/server/lib/galaxy/util/template.py", line 80, in fill_template
    return unicodify(t, log_exception=False)
  File "/opt/galaxy/server/lib/galaxy/util/__init__.py", line 1039, in unicodify
    value = str(value)
  File "/opt/galaxy/venv/lib/python3.6/site-packages/Cheetah/Template.py", line 1053, in __unicode__
    return getattr(self, mainMethName)()
  File "cheetah_DynamicallyCompiledCheetahTemplate_1617224667_026419_66633.py", line 86, in respond
TypeError: 'NoneType' object is not callable

I removed the cache, restarted all handlers but I still see those errors with all uploads. Even if the config of an FTP plugin is wrong it should not crash normal uploads I think.

bgruening commented 3 years ago

This seems to be a problem again with our dropbox config.