Bug 708035

Summary: "TOO MANY ARGUMENTS IN THE URL" error
Product: Red Hat Enterprise Linux 5 Reporter: Marek Grac <mgrac>
Component: piranhaAssignee: Ryan O'Hara <rohara>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 5.8CC: carlosinfantes, cluster-maint, djansa, edamato, mjuricek
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: piranha-0.8.4-23.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 677359 Environment:
Last Closed: 2012-02-21 06:34:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 677359, 708036    
Bug Blocks:    
Attachments:
Description Flags
Replace HTTP GET with HTTP POST in virtual server UI. none

Description Marek Grac 2011-05-26 15:32:01 UTC
+++ This bug was initially created as a clone of Bug #677359 +++

Description of problem:
When I add more than 50 VIPS (aprox number), in the Virtual Servers tab in piranha-gui if I select any VIP, and I click "Edit", the response is "TOO MANY ARGUMENTS IN URL" and looking the URL that is trying to open its made with a combination of ALL the VIPs.

Version-Release number of selected component (if applicable):

Server version: Apache/2.2.3
Server built:   Apr  4 2010 17:18:37


How reproducible:
Add more than 50 VIPs in a machine running piranha, and the edit option for VIPs stops work.

Steps to Reproduce:
1. In a host running piranha add more than 50 VIPs
2. Try to edit a VIP
3. See the error in the screen
  
Actual results:
Too Many arguments in the URL

Expected results:
The edit options for the selected VIP

Additional info:

Changing some lines in the virtual_main.php file works again:


[root@lb1 secure]# diff virtual_main.php virtual_main.php.orig
5,6c5,6
< 	if (isset($_POST['selected_host'])) {
<         	$selected_host=$_POST['selected_host'];
---
> 	if (isset($_GET['selected_host'])) {
>         	$selected_host=$_GET['selected_host'];
8,9c8,9
< 	if (isset($_POST['virtual_service'])) {
< 		$virtual_service=$_POST['virtual_service'];
---
> 	if (isset($_GET['virtual_service'])) {
> 		$virtual_service=$_GET['virtual_service'];
97,98c97,98
< 	if (isset($_POST['virtual_service'])) {
< 		$virtual_service = $_POST['virtual_service'];
---
> 	if (isset($_GET['virtual_service'])) {
> 		$virtual_service = $_GET['virtual_service'];
133c133
< <FORM METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" ACTION="virtual_main.php">
---
> <FORM METHOD="GET" ENCTYPE="application/x-www-form-urlencoded" ACTION="virtual_main.php">
[root@lb1 secure]#

--- Additional comment from mgrac on 2011-05-26 11:31:21 EDT ---

@Carlos:

Thanks for a patch, I will clone it to RHEL5 and RHEL6 where it can be fixed. RHEL4 is now in very late stage and only very important and security fixes can be included. Situation differs for newer versions where this kind of bugs should be surely fixed and yours patch provides a good solution.

Comment 3 Ryan O'Hara 2011-10-12 18:02:24 UTC
Using RHEL5.7 with piranha-0.8.4-22.el5, added 92 VIPs via piranha-gui before Firefox reported:

Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.

This occurs when too many VIPs are defined and you attempt to add/remove/edit a VIP.

We can see the 92 VIPs is the point at which apache begins reporting 414 errors.

# egrep ^virtual lvs.cf | wc -l
92

After changing HTTP POST calls to HTTP GET calls, additional VIPs can be added/deleted/modified.

# egrep ^virtual lvs.cf | wc -l
96

Comment 4 Ryan O'Hara 2011-10-12 18:17:21 UTC
Created attachment 527756 [details]
Replace HTTP GET with HTTP POST in virtual server UI.

Comment 7 errata-xmlrpc 2012-02-21 06:34:22 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2012-0262.html