Skip to content

bpo-43332: Buffer proxy connection setup packets before sending. #24780

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 8, 2021

Conversation

gpshead
Copy link
Member

@gpshead gpshead commented Mar 7, 2021

We now buffer the CONNECT request + tunnel HTTP headers into a single
send call. This prevents the OS from generating multiple network
packets for connection setup when not necessary, improving efficiency.

https://bugs.python.org/issue43332

We now buffer the CONNECT request + tunnel HTTP headers into a single
send call.  This prevents the OS from generating multiple network
packets for connection setup when not necessary, improving efficiency.
@gpshead gpshead added type-bug An unexpected behavior, bug, or error performance Performance or resource usage labels Mar 7, 2021
@gpshead gpshead requested a review from 1st1 March 7, 2021 19:28
@gpshead gpshead self-assigned this Mar 7, 2021
@gpshead gpshead removed the request for review from 1st1 March 8, 2021 00:58
@@ -2051,6 +2052,23 @@ def test_connect_with_tunnel(self):
# This test should be removed when CONNECT gets the HTTP/1.1 blessing
self.assertNotIn(b'Host: proxy.com', self.conn.sock.data)

def test_tunnel_connect_single_send_connection_setup(self):
"""Regresstion test for https://bugs.python.org/issue43332."""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"""Regresstion test for https://bugs.python.org/issue43332."""
"""Regression test for https://bugs.python.org/issue43332."""

Copy link
Member

@orsenthil orsenthil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

I have a review comment for the test which you can choose to address.

@gpshead gpshead merged commit c25910a into python:master Mar 8, 2021
@gpshead gpshead deleted the http_client_header_cork_issue43332 branch March 8, 2021 07:36
@gpshead gpshead added the needs backport to 3.9 only security fixes label Mar 8, 2021
@miss-islington
Copy link
Contributor

Thanks @gpshead for the PR 🌮🎉.. I'm working now to backport this PR to: 3.9.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Mar 8, 2021
…honGH-24780)

We now buffer the CONNECT request + tunnel HTTP headers into a single
send call.  This prevents the OS from generating multiple network
packets for connection setup when not necessary, improving efficiency.
(cherry picked from commit c25910a)

Co-authored-by: Gregory P. Smith <[email protected]>
@bedevere-bot
Copy link

GH-24783 is a backport of this pull request to the 3.9 branch.

@bedevere-bot bedevere-bot removed the needs backport to 3.9 only security fixes label Mar 8, 2021
miss-islington added a commit that referenced this pull request Mar 8, 2021
…24780)

We now buffer the CONNECT request + tunnel HTTP headers into a single
send call.  This prevents the OS from generating multiple network
packets for connection setup when not necessary, improving efficiency.
(cherry picked from commit c25910a)

Co-authored-by: Gregory P. Smith <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Performance or resource usage type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants