From the trace, two set_peek methods are calling each other in a loop. I deduced
Hi all, I just got a nasty recursion error when trying to run the functional tests for my TMHMM and SignalP wrappers - tools which produce tabular output. galaxy.jobs.runners.local: ERROR: Job wrapper finish method failed Traceback (most recent call last): File "/home/pjcock/repositories/galaxy-central/lib/galaxy/jobs/runners/local.py", line 125, in run_job job_wrapper.finish( stdout, stderr ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/jobs/__init__.py", line 578, in finish dataset.set_peek() File "/home/pjcock/repositories/galaxy-central/lib/galaxy/model/__init__.py", line 690, in set_peek return self.datatype.set_peek( self, is_multi_byte=is_multi_byte ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/tabular.py", line 227, in set_peek data.Text.set_peek( self, dataset, line_count=line_count, is_multi_byte=is_multi_byte ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/data.py", line 431, in set_peek self.set_peek(dataset) ... File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/tabular.py", line 227, in set_peek data.Text.set_peek( self, dataset, line_count=line_count, is_multi_byte=is_multi_byte ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/data.py", line 431, in set_peek self.set_peek(dataset) ... File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/tabular.py", line 227, in set_peek data.Text.set_peek( self, dataset, line_count=line_count, is_multi_byte=is_multi_byte ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/datatypes/data.py", line 419, in set_peek dataset.peek = get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) File "/home/pjcock/repositories/galaxy-central/lib/galaxy/model/__init__.py", line 628, in get_file_name return self.dataset.get_file_name() File "/home/pjcock/repositories/galaxy-central/lib/galaxy/model/__init__.py", line 515, in get_file_name return os.path.abspath( os.path.join( dir, "dataset_%d.dat" % self.id ) ) File "/usr/local/lib/python2.6/posixpath.py", line 348, in abspath return normpath(path) File "/usr/local/lib/python2.6/posixpath.py", line 314, in normpath slash, dot = (u'/', u'.') if isinstance(path, unicode) else ('/', '.') RuntimeError: maximum recursion depth exceeded while calling a Python object the problem was an empty tabular files, where dataset.metadata.data_lines is zero, but the test should really have been for None. Please review and apply this patch which appears to correctly resolve the issue: diff -r 9fae539215be lib/galaxy/datatypes/data.py --- a/lib/galaxy/datatypes/data.py Fri Mar 18 11:46:48 2011 +0000 +++ b/lib/galaxy/datatypes/data.py Fri Mar 18 11:49:05 2011 +0000 @@ -422,7 +422,7 @@ dataset.peek = get_file_peek( dataset.file_name, is_multi_byte=is_multi_byte ) if line_count is None: # See if line_count is stored in the metadata - if dataset.metadata.data_lines: + if dataset.metadata.data_lines is not None: dataset.blurb = "%s %s" % ( util.commaify( str(dataset.metadata.data_lines) ), inflector.cond_plural(dataset.metadata.data_lines, "line") ) else: # Number of lines is not known ( this should not happen ), and auto-detect is Thanks, Peter