Folks,

After checking a little closer last night, I have one clarification.
The Tool Shed does use POSTs as well as GETs, but even when it's
POSTing, the encoded dictionaries (encoded_repo_info_dicts) are part
of the query string.  The encoded_repo_info_dicts should probably
become part of the POSTed data.

-rico

On Sep 12, 2013, at 3:55 PM, Richard Burhans wrote:

When installing Galaxy Tool Shed repositories into a local Galaxy
instance, tool shed dependecies are exchanged as an encoded python
dictionary via the HTTP GET method.

If a tool shed repository contains enough dependencies, the length
of this encoded dictionary can become extremely long.  In my case,
it became long enough for my Apache server to choke on it:

[Wed Sep 11 15:34:53 2013] [error] [client XXX.XXX.XXX.XXX] request failed: URI too long (longer than 8190)

The HTTP standard does not place a limit on the length of a URI,
but the de facto limit is 2000 characters.  See the following
stackoverflow answer:

  http://stackoverflow.com/a/417184

I would recommend either:
  1) communicating toolshed dependencies via an HTTP POST
  2) redesigning tool shed <-> instance communications

As a stopgap measure, I've modified lib/tool_shed/util/ encoding_util.py
to use a more compact encoding scheme.  I'm attaching a copy in
case someone else runs into the same problem.

-rico<encoding_util.py>

___________________________________________________________
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