Adam, there are two problems here. We have some kind of bug regarding putting the stderr string in the Galaxy database when it contains unicode strings.

However, in both cases you can still read the message it is trying to save. In the first case, "Error in hclustfun(distfun(x))" -- this might just be a warning and the tool might still work -- but in the second case, Error in library("cummeRbund"), is definitely fatal.


--
James Taylor, Assistant Professor, Biology/CS, Emory University


On Sun, May 12, 2013 at 12:34 AM, Panzer, Adam <Panzer_A@kids.wustl.edu> wrote:
Hello All,

I have recently deployed a local instance of Galaxy at work and while I've been able to troubleshoot problems with all other tool types, I have a persistent issue with using any tool that relies on R.

For deseq:

Traceback (most recent call last):
  File "/home/adam/galaxy-dist/lib/galaxy/jobs/runners/local.py", line 109, in queue_job
    job_wrapper.finish( stdout, stderr, exit_code )
  File "/home/adam/galaxy-dist/lib/galaxy/jobs/__init__.py", line 999, in finish
    self.sa_session.flush()
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/scoping.py", line 127, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/session.py", line 1356, in flush
    self._flush(objects)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/session.py", line 1434, in _flush
    flush_context.execute()
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 261, in execute
    UOWExecutor().execute(self, tasks)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 753, in execute
    self.execute_save_steps(trans, task)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 768, in execute_save_steps
    self.save_objects(trans, task)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 759, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/mapper.py", line 1413, in _save_obj
    c = connection.execute(statement.values(value_params), params)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 824, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 874, in _execute_clauseelement
    return self.__execute_context(context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 896, in __execute_context
    self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 950, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor, context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE job SET update_time=?, stdout=?, stderr=? WHERE job.id = ?' ['2013-05-10 06:12:01.564757', '', 'Error: Loading required package: Biobase\nLoading required package: BiocGenerics\nLoading required package: methods\nLoading required package: parallel\n\nAttaching package: \xe2\x80\x98BiocGenerics\xe2\x80\x99\n\nThe following objects are masked from \xe2\x80\x98package:parallel\xe2\x80\x99:\n\n    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,\n    clusterExport, clusterMap, parApply, parCapply, parLapply,\n    parLapplyLB, parRapply, parSapply, parSapplyLB\n\nThe following object is masked from \xe2\x80\x98package:stats\xe2\x80\x99:\n\n    xtabs\n\nThe following objects are masked from \xe2\x80\x98package:base\xe2\x8
0\x99:\n\n    anyDuplicated, as.data.frame, cbind, colnames, duplicated, eval,\n    Filter, Find, get, intersect, lapply, Map, mapply, match, mget,\n    order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank,\n    rbind, Reduce, rep.int, rownames, sapply, setdiff, sort, table,\n    tapply, union, unique, unlist\n\nWelcome to Bioconductor\n\n    Vignettes contain introductory material; view with\n    \'browseVignettes()\'. To cite Bioconductor, see\n    \'citation("Biobase")\', and for packages \'citation("pkgname")\'.\n\nLoading required package: locfit\nlocfit 1.5-9.1 \t 2013-03-22\nLoading required package: lattice\nWarning message:\nIn xy.coords(x, y, xlabel, ylabel, log) :\n  9 y values <= 0 omitted from logarithmic plot\nError in hclustfun(distfun(x)) : \n  NA/NaN/Inf in foreign function call (arg 11)\nCalls: heatmap -> hclustfun\nExecution halted\n\n', 116]

For cummerbund:

Traceback (most recent call last):
  File "/home/adam/galaxy-dist/lib/galaxy/jobs/runners/local.py", line 109, in queue_job
    job_wrapper.finish( stdout, stderr, exit_code )
  File "/home/adam/galaxy-dist/lib/galaxy/jobs/__init__.py", line 999, in finish
    self.sa_session.flush()
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/scoping.py", line 127, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/session.py", line 1356, in flush
    self._flush(objects)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/session.py", line 1434, in _flush
    flush_context.execute()
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 261, in execute
    UOWExecutor().execute(self, tasks)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 753, in execute
    self.execute_save_steps(trans, task)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 768, in execute_save_steps
    self.save_objects(trans, task)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/unitofwork.py", line 759, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/orm/mapper.py", line 1413, in _save_obj
    c = connection.execute(statement.values(value_params), params)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 824, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 874, in _execute_clauseelement
    return self.__execute_context(context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 896, in __execute_context
    self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 950, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor, context)
  File "/home/adam/galaxy-dist/eggs/SQLAlchemy-0.5.6_dev_r6498-py2.7.egg/sqlalchemy/engine/base.py", line 931, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
ProgrammingError: (ProgrammingError) You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings. u'UPDATE job SET update_time=?, stdout=?, stderr=? WHERE job.id = ?' ['2013-05-10 04:38:55.946925', '', 'Fatal error: Exit code 1 (CummerBund Error)\nError running R script. Error in library("cummeRbund") : there is no package called \xe2\x80\x98cummeRbund\xe2\x80\x99\nExecution halted\n\n', 112]

It appears that they all fail in a similar fashion. I noticed a similar issue brought up about a year ago but deploying the fixes mentioned then (using a python wrapper to keep R messages out of stderr and telling R to run without curly quotes) has not done anything to stop it. Any ideas would be most appreciated as several R tools are a part of my target RNA-Seq pipeline.

Thanks!
Adam


The materials in this email are private and may contain Protected Health Information. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying, distribution or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return email.

___________________________________________________________
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/