| Index: net/quic/quic_stream_factory.cc
|
| diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc
|
| index 51b3b9df919ffbcd05ecdad72cd305e964c5b379..404ed1935b70f21f5e74960ee84adddeae61f129 100644
|
| --- a/net/quic/quic_stream_factory.cc
|
| +++ b/net/quic/quic_stream_factory.cc
|
| @@ -888,9 +888,17 @@ int QuicStreamFactory::CreateSession(
|
| server_info.Pass(), config,
|
| base::MessageLoop::current()->message_loop_proxy().get(),
|
| net_log.net_log());
|
| + all_sessions_[*session] = server_id; // owning pointer
|
| (*session)->InitializeSession(server_id, &crypto_config_,
|
| quic_crypto_client_stream_factory_);
|
| - all_sessions_[*session] = server_id; // owning pointer
|
| + bool closed_during_initialize = !ContainsKey(all_sessions_, *session);
|
| + UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ClosedDuringInitializeSession",
|
| + closed_during_initialize);
|
| + if (closed_during_initialize) {
|
| + DLOG(DFATAL) << "Session closed during initialize";
|
| + *session = NULL;
|
| + return ERR_CONNECTION_CLOSED;
|
| + }
|
| return OK;
|
| }
|
|
|
|
|