Details
-
Bug
-
Status: Resolved (View Workflow)
-
Minor
-
Resolution: Duplicate
-
Jenkins >= 2.54 (Tested on 2.78 and 2.82)
Apache 2.2.22 and 2.4.22
Ubuntu 12.04
Description
I've been testing various reverse proxies with Jenkins, and am unable to use the CLI over an Apache reverse proxy using mod_proxy with the new full-duplex HTTP transport and the plain CLI protocol that was introduced in Jenkins 2.54. Both Nginx and HAProxy work using the full duplex HTTP transport correctly. Accessing Jenkins through my browser over the Apache proxy works correctly.
I used Wireshark to see what was happening, and the issue appears to be that Apache tries to buffer the body of the upload connection before proxying it to Jenkins, so Jenkins never sees the upload connection. As far as I can tell, the current code for FullDuplexHttpService and FullDuplexHttpStream require that both connections are unbuffered. The relevant setting in Apache has a minimum value of 512, and neither SetEnv proxy-sendchunks 1 nor SetEnv proxy-sendchunked 1 have a noticeable effect.
I am testing using https://github.com/jglick/jenkins-demo-reverse-proxy, and attempting to run the following CLI command:
java -jar jenkins-cli.jar -s "http://localhost:80/jenkins|http://localhost/jenkins" -logger FINE help
This is the error that is thrown by Jenkins 2.82:
WARNING: null java.io.IOException: HTTP full-duplex channel timeout: 829c689a-05cb-4e9a-a559-eeed9c099460 at jenkins.util.FullDuplexHttpService.download(FullDuplexHttpService.java:108) at jenkins.util.FullDuplexHttpService$Response.generateResponse(FullDuplexHttpService.java:175)
Assuming that Jenkins' full-duplex HTTP connection is spec compliant, this is arguably a bug in Apache.
Attachments
Issue Links
- relates to
-
JENKINS-43666 HTTP full-duplex channel timeout from FullDuplexHttpService.download
-
- Resolved
-
- links to
- mentioned in
-
Page Loading...
Code changed in jenkins
User: Liam Newman
Path:
content/doc/book/managing/cli.adoc
http://jenkins-ci.org/commit/jenkins.io/b00d1424637c32b430423479e6ea5d71d5b28e3a
Log:
Merge pull request #1164 from dwnusbaum/
JENKINS-47279JENKINS-47279Add warning for HTTP mode CLI with Apache reverse proxiesCompare: https://github.com/jenkins-infra/jenkins.io/compare/0c002fbba7c8...b00d1424637c