Opened 12 years ago

Closed 11 years ago

Last modified 11 years ago

#1032 closed defect (fixed)

Apache server complains "Request-URI Too Large"

Reported by: jari Owned by: jari
Priority: minor Milestone: BASE 2.8
Component: web Version: 2.7
Keywords: Cc:

Description

In some cases the Apache server complains in the URI size. If one selects many raw bioassay from the raw bioassay list view and hits the 'New experiment" button apache complains with "Request-URI too large". Too large here is something like 500 raw bioassays, we have not looked for the exact number.

Searching the Net seems to say that Apache is configured for some fixed length. The fix seems to be that one should go from "GET" to "POST" requests.

There may be a work around for this by creating a new experiment from the experiment listing page and add raw bioassays to the experiment. However, there are some other places where the same problem occurs where a work around does not exist. (A little bit cryptic ... more on the "other places" later.)

Change History (8)

comment:1 Changed 12 years ago by Nicklas Nordborg

Ticket #896 solved a similar problem and also contains some background information about how long URLs various browsers/servers supports (http://www.boutell.com/newfaq/misc/urllength.html). But, ticket #896 was not really problematic to solve since it was a pure HTML form that we could just change from GET to POST.

The case described in this case uses Javascript to build an URL and then uses window.open(url) to show the new window. There are no forms involved. So, there is really no GET that we can change to POST. I guess there are lots and lots of places where this could theoretically be an issue. So it would be nice to know about the "other places".

The suggested solutions I have seen from users with similar problems involves the following steps:

  1. Open an empty window: window.open('', 'TheWindow', ....)
  2. Write html to that window creating a form with hidden values: TheWindow.write('<input type=hidden name=... value=...>
  3. POST the form: TheWindow.document.forms[0].submit()

Another workaround is to increase the allowed length on the server side and don't use Internet explorer: http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestline

comment:2 Changed 11 years ago by Nicklas Nordborg

Milestone: BASE 2.8
Owner: changed from everyone to Nicklas Nordborg
Priority: majorminor
Status: newassigned

I'll start by implementing functionality for doing the form generation and posting. When that has been done, I need to know about more about the "other places" were this can be a problem so I can insert the functionality there. In some cases this has to be resolved on a case-by-case basis.

comment:3 Changed 11 years ago by Nicklas Nordborg

(In [4384]) References #1032: Apache server complains "Request-URI Too Large"

Main functionality is in place. The "New experiment" function is fixed and probably all other places where a new window is opened with the Main.openPopup script. Other functions that use 'location.href', 'location.replace' or 'window.open' are not fixed.

comment:4 Changed 11 years ago by Nicklas Nordborg

Owner: changed from Nicklas Nordborg to jari
Status: assignednew

comment:5 Changed 11 years ago by jari

I was going to test the new functionality but I realize that my test database does not contain enough data. We cannot test this until we release 2.8 and upgrade our production server. Should we move this ticket to 2.8.1 for final testing?

comment:6 Changed 11 years ago by Nicklas Nordborg

I think the core functionality is working and doesn't need more testing. It is just that I don't have any information about "other places" that may be affected. In theory this could be checked on the existing production server, but it may be hard to know if any additional place that is found has been fixed already or not. Maybe we should just close this ticket and create a new one for reporting new problems.

comment:7 Changed 11 years ago by jari

Resolution: fixed
Status: newclosed

comment:8 in reply to:  7 Changed 11 years ago by Johan Vallon-Christersson

Replying to jari: One 'other place' seems to be the filter plugin. That is, when creating as child bioassayset using a filter and selecting a subset of assays to be filtered (as opposed to selecting all bioassays). Tried to filter 577 bioassays of 600+ and got the Request-URI Too Large notification.

Note: See TracTickets for help on using tickets.