[JIRA] (JENKINS-47279) Full-duplex HTTP(S) transport with plain CLI protocol does not work with Apache reverse proxy in Jenkins >= 2.54

4 views
Skip to first unread message

jglick@cloudbees.com (JIRA)

unread,
Apr 22, 2019, 4:18:02 PM4/22/19
to jenkinsc...@googlegroups.com
Jesse Glick commented on Bug JENKINS-47279
 
Re: Full-duplex HTTP(S) transport with plain CLI protocol does not work with Apache reverse proxy in Jenkins >= 2.54

If we want to maintain the CLI system in the long term (as opposed to guiding users toward REST), then we could offer the “plain” protocol over WebSocket transport rather than the full-duplex HTTP hack.

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

craig@2ndquadrant.com (JIRA)

unread,
Jun 5, 2019, 12:56:03 AM6/5/19
to jenkinsc...@googlegroups.com

I've seen reports this also affects nginx with `proxy_request_buffering` and/or `proxy_buffering`.

craig@2ndquadrant.com (JIRA)

unread,
Jun 5, 2019, 1:17:02 AM6/5/19
to jenkinsc...@googlegroups.com
Craig Ringer edited a comment on Bug JENKINS-47279
I've seen reports this also affects nginx with ` {{ proxy_request_buffering ` }} and/or ` {{ proxy_buffering ` }} .


This makes me wonder if changes to {{mod_proxy}}'s [ProxyIOBufferSize|https://httpd.apache.org/docs/current/mod/mod_proxy.html#ProxyIOBufferSize] and/or [ProxyReceiveBufferSize|https://httpd.apache.org/docs/current/mod/mod_proxy.html#ProxyReceiveBufferSize] may address this, perhaps in combination with ensuring {{jenkins-cli}} sends a certain minimum size request/response.

dnusbaum@cloudbees.com (JIRA)

unread,
Jun 5, 2019, 9:29:03 AM6/5/19
to jenkinsc...@googlegroups.com

Craig Ringer Yes, in Nginx you must use proxy_request_buffering off; and sometimes proxy_buffering off;, but Apache does not have any such feature as far as I can tell. Changes to mod_proxy could probably fix the issue, but I think you would end up having to provide a way to stop buffering requests/responses completely, because IIRC the plain CLI protocol sends only a single byte before waiting for a response in some cases.

Reply all
Reply to author
Forward
0 new messages