Bug 831303

Summary: From my F17 Puppet Server to my F16 Client, "Request-URI Too Large"
Product: [Fedora] Fedora Reporter: John Florian <john>
Component: puppetAssignee: Todd Zullinger <tmz>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 17CC: bloch, dsd, k.georgiou, tmz, trailtotale, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-08-01 20:10:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description John Florian 2012-06-12 17:49:37 UTC
Description of problem:

Initially I tried bringing up my first F17 node via a puppet master running on F15.  This failed apparently because the master is now running an older version than the client.  Fair enough, I'll build an F17 master first.

After a few other surprises were resolved (puppet-2.7/ruby-1.9), I now have a situation where an F17 master can successfully serve an F17 client, but it refuses to serve an F16 client, which results in an error "Request-URI Too Large".

Someone please tell me I'm not going to need to have a pair of masters, one for older (F8-F16) clients and one for newer (F17-) clients.

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

On the F17 hosts (server and client):
puppet-2.7.13-1.fc17.noarch
ruby-1.9.3.194-10.1.fc17.x86_64

On the F16 hosts (client):
puppet-2.6.16-1.fc16.noarch
ruby-1.8.7.358-1.fc16.x86_64

How reproducible:
always

Steps to Reproduce:
1. configure a puppet master atop F17 and a client atop F16
2. as root, run: puppet agent --test

Actual results:

err: Could not retrieve catalog from remote server: Error 414 on SERVER: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
  <HEAD><TITLE>Request-URI Too Large</TITLE></HEAD>
  <BODY>
    <H1>Request-URI Too Large</H1>
    WEBrick::HTTPStatus::RequestURITooLarge
    <HR>
    <ADDRESS>
     WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) OpenSSL/1.0.0j at
     mdct-puppet.dartcontainer.com:8140
    </ADDRESS>
  </BODY>
</HTML>

warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

Expected results:
It should just work.

Additional info:

Comment 1 John Florian 2012-06-13 13:57:40 UTC
I've managed a temporary work-around with this patch:

diff -up /usr/share/ruby/webrick/httprequest.rb.orig /usr/share/ruby/webrick/httprequest.rb
--- /usr/share/ruby/webrick/httprequest.rb.orig 2011-07-22 08:49:34.000000000 -0400
+++ /usr/share/ruby/webrick/httprequest.rb      2012-06-13 09:56:47.944953176 -0400
@@ -290,7 +290,7 @@ module WEBrick
 
     private
 
-    MAX_URI_LENGTH = 2083 # :nodoc:
+    MAX_URI_LENGTH = 4096 # :nodoc:
 
     def read_request_line(socket)
       @request_line = read_line(socket, MAX_URI_LENGTH) if socket

Comment 2 Daniel Drake 2013-02-20 16:23:42 UTC
This is triggered by old puppet clients sending long HTTP GET requests (newer clients use POST for long requests), and new WEBrick being a bit more restrictive than before.

This is worked around upstream:

https://github.com/puppetlabs/puppet/commit/ec462b7b974fc34110437010f862780fb2ee39a3.patch

Can we get this fix included in Fedora 18 and newer?

Comment 3 Daniel Drake 2013-02-20 16:27:59 UTC
I'd be happy to do the packaging work myself.

Comment 4 Fedora Update System 2013-03-20 14:52:02 UTC
puppet-2.7.21-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/puppet-2.7.21-2.fc17

Comment 5 Fedora Update System 2013-03-22 00:34:33 UTC
Package puppet-2.7.21-2.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing puppet-2.7.21-2.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-4187/puppet-2.7.21-2.fc17
then log in and leave karma (feedback).

Comment 6 Fedora End Of Life 2013-07-04 07:47:25 UTC
This message is a reminder that Fedora 17 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 17. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '17'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 17's end of life.

Bug Reporter:  Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 17 is end of life. If you 
would still like  to see this bug fixed and are able to reproduce it 
against a later version  of Fedora, you are encouraged  change the 
'version' to a later Fedora version prior to Fedora 17's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 7 Fedora End Of Life 2013-08-01 20:10:50 UTC
Fedora 17 changed to end-of-life (EOL) status on 2013-07-30. Fedora 17 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.