Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Issue 283693002: Land Recent QUIC Changes. (Closed)

Created:
6 years, 7 months ago by ramant (doing other things)
Modified:
6 years, 7 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org
Visibility:
Public.

Description

Land Recent QUIC Changes. Fix a flaky EndToEndTest where packet loss is possible with a large buffer that may overrun. Merge internal change: 66821654 https://codereview.chromium.org/280383003/ QUIC change to invoke SetNotPending for retransmissions in MarkForRetransmission and a minor cleanup in UnackedPacketMap. Merge internal change: 66729074 https://codereview.chromium.org/278823005/ Remove unused IsHandshake argument to QuicConnection::OnCanWrite. Merge internal change: 66652078 https://codereview.chromium.org/286563003/ Revert of Fix a bug where if a crypto packet is spuriously retransmitted and thenneutered, it remains in missing_packets until the end of the connection. Reverted chromium cl: https://codereview.chromium.org/270213002/ Rollback of Merge internal change: 66262890. *** Reason for rollback *** This appears to have caused a major QUIC loadtest regression on internal server. Additionally, it's wrong in some other subtle ways, so rolling it back and trying a new approach. *** Original change description *** Fix a bug where if a crypto packet is spuriously retransmitted and then neutered, it remains in missing_packets until the end of the connection. *** Merge internal change: 66615668 https://codereview.chromium.org/287583002/ Revert of Minor QUIC cleanup to combine QuicUnackedPacketMap's RemovePacket and NeuterPacket into RemoveOrNeuterPacket. Rollback of merge internal change: 66306887 Rollback of Chromium's CL https://codereview.chromium.org/271443008/ *** Reason for rollback *** After further issues with the QUIC handshake packets, rolling back this change in favor of a different approach. *** Original change description *** Minor QUIC cleanup to combine QuicUnackedPacketMap's RemovePacket and NeuterPacket into RemoveOrNeuterPacket. This prevents potential bugs where a packet can be set not pending, then neuter'd, which cuases the packet to never be removed from the unacked packet map. *** Merge internal change: 66573334 https://codereview.chromium.org/280753002/ Merging end_to_end_test.cc with the internal source tree. + Fixed comments (MB for megabytes and 256KB per sec instead of 1Mbit). + Made LargePostWithPacketLossAndBlockedSocket and LargePostNoPacketLossWithDelayAndReordering to be in the same order as the internal source tree. Merge internal change: 66556306 https://codereview.chromium.org/283683002/ Allows QUIC connections to remain established even though the peer's port has changed. Should make things a bit better for clients experiencing NAT rebinding while talking QUIC to internal server. QUIC connection port migration. Protected behind FLAGS_quic_allow_port_migration Merge internal change: 66523001 https://codereview.chromium.org/279453004/ Remove unnecessary methods from QuicUnackedPacketMap and a minor QuicSentPacketManagerTest fix as a result. Merge internal change: 66427453 https://codereview.chromium.org/287443003/ R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=270046

Patch Set 1 #

Total comments: 14
Unified diffs Side-by-side diffs Delta from patch set Stats (+294 lines, -185 lines) Patch
M net/quic/congestion_control/tcp_loss_algorithm_test.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_connection.h View 5 chunks +25 lines, -7 lines 0 comments Download
M net/quic/quic_connection.cc View 10 chunks +55 lines, -32 lines 0 comments Download
M net/quic/quic_flags.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/quic_flags.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M net/quic/quic_reliable_client_stream.cc View 1 chunk +1 line, -2 lines 0 comments Download
M net/quic/quic_sent_packet_manager.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 10 chunks +43 lines, -22 lines 4 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 6 chunks +12 lines, -38 lines 0 comments Download
M net/quic/quic_session.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_unacked_packet_map.h View 3 chunks +9 lines, -10 lines 2 comments Download
M net/quic/quic_unacked_packet_map.cc View 6 chunks +30 lines, -33 lines 6 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.h View 1 chunk +0 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 11 chunks +85 lines, -27 lines 2 comments Download
M net/tools/quic/quic_client.h View 1 chunk +4 lines, -0 lines 0 comments Download
M net/tools/quic/quic_client.cc View 2 chunks +10 lines, -2 lines 0 comments Download
M net/tools/quic/test_tools/quic_client_peer.h View 1 chunk +2 lines, -0 lines 0 comments Download
M net/tools/quic/test_tools/quic_client_peer.cc View 1 chunk +10 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
ramant (doing other things)
6 years, 7 months ago (2014-05-13 01:00:17 UTC) #1
Ryan Hamilton
lgtm
6 years, 7 months ago (2014-05-13 04:26:44 UTC) #2
ramant (doing other things)
The CQ bit was checked by rtenneti@chromium.org
6 years, 7 months ago (2014-05-13 06:18:33 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/283693002/1
6 years, 7 months ago (2014-05-13 06:18:46 UTC) #4
commit-bot: I haz the power
Change committed as 270046
6 years, 7 months ago (2014-05-13 07:44:27 UTC) #5
wtc
Patch set 1 LGTM. https://codereview.chromium.org/283693002/diff/1/net/quic/quic_sent_packet_manager.cc File net/quic/quic_sent_packet_manager.cc (right): https://codereview.chromium.org/283693002/diff/1/net/quic/quic_sent_packet_manager.cc#newcode255 net/quic/quic_sent_packet_manager.cc:255: while (unacked_it != unacked_packets_.end()) { ...
6 years, 7 months ago (2014-05-13 18:49:23 UTC) #6
Ian Swett
Comments added WanTeh. The current code is quite confusing. This CL is a rollback of ...
6 years, 7 months ago (2014-05-13 18:58:28 UTC) #7
ramant (doing other things)
6 years, 7 months ago (2014-05-14 05:33:29 UTC) #8
Message was sent while issue was closed.
Made the changes in https://codereview.chromium.org/286693003/

https://codereview.chromium.org/283693002/diff/1/net/quic/quic_sent_packet_ma...
File net/quic/quic_sent_packet_manager.cc (right):

https://codereview.chromium.org/283693002/diff/1/net/quic/quic_sent_packet_ma...
net/quic/quic_sent_packet_manager.cc:255: while (unacked_it !=
unacked_packets_.end()) {
On 2014/05/13 18:49:23, wtc wrote:
> 
> Nit: in the new code, this loop can be a for loop because it updates
> |unacked_it| in only one way. (The old code updated |unacked_it| in two ways,
so
> it had to be a while loop.)

Made this change in
https://codereview.chromium.org/286693003/diff/1/net/quic/quic_sent_packet_ma...

Done.

https://codereview.chromium.org/283693002/diff/1/net/quic/quic_sent_packet_ma...
net/quic/quic_sent_packet_manager.cc:259: // Since once you're forward secure,
no unencrypted packets will be sent,
On 2014/05/13 18:49:23, wtc wrote:
> 
> Nit: "Since" and "once" sound a little redundant. It seems that "once" is
enough
> (as in the original comment).

Made this change in
https://codereview.chromium.org/286693003/diff/1/net/quic/quic_sent_packet_ma...

Done.

https://codereview.chromium.org/283693002/diff/1/net/quic/quic_unacked_packet...
File net/quic/quic_unacked_packet_map.h (right):

https://codereview.chromium.org/283693002/diff/1/net/quic/quic_unacked_packet...
net/quic/quic_unacked_packet_map.h:122: // frames, and sets all_transmissions to
only include itself.
On 2014/05/13 18:49:23, wtc wrote:
> 
> 1. Unless we expect readers of this code to know all_transmissions is a member
> of the TransmissionInfo struct, it would be nice to clarify that.
> 
> 2. It's not clear what "itself" refers to. The specified packet or
> all_transmissions?
> 
> 3. Nit: If I only read the comments here, I don't really know the difference
> between RemovePacket and NeuterPacket and hence don't know when I should use
> which method. Unfortunately I can't suggest a way to clarify this.

ianswett@: Would like to work with you to make this change in internal source
tree and then merge into chromium.

https://codereview.chromium.org/283693002/diff/1/net/tools/quic/end_to_end_te...
File net/tools/quic/end_to_end_test.cc (right):

https://codereview.chromium.org/283693002/diff/1/net/tools/quic/end_to_end_te...
net/tools/quic/end_to_end_test.cc:663: // 256KB per second with a 256k buffer
from server to client.  Wireless
On 2014/05/13 18:49:23, wtc wrote:
> 
> Nit: 256k => 256KB ?

Made this change in
https://codereview.chromium.org/286693003/diff/1/net/tools/quic/end_to_end_te...

Done.

Powered by Google App Engine
This is Rietveld 408576698