mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 06:47:41 +03:00
quiet certain connection errors when shutting down
Summary: Similar to D27155123 (1a56da1c6f
).
Reviewed By: krallin
Differential Revision: D27805926
fbshipit-source-id: cf58a2e9b2ef92ca536f3b61b63fb42cfb1ec940
This commit is contained in:
parent
a0c85e4e2a
commit
77a205db89
@ -391,6 +391,7 @@ members = [
|
||||
"permission_checker",
|
||||
"phases",
|
||||
"pushrebase",
|
||||
"quiet_stream",
|
||||
"reachabilityindex",
|
||||
"reachabilityindex/common",
|
||||
"reachabilityindex/if",
|
||||
|
@ -26,6 +26,7 @@ openssl = "0.10"
|
||||
percent-encoding = "2.1"
|
||||
permission_checker = { version = "0.1.0", path = "../permission_checker" }
|
||||
pin-project = "0.4"
|
||||
quiet_stream = { version = "0.1.0", path = "../quiet_stream" }
|
||||
scuba_ext = { version = "0.1.0", path = "../common/scuba_ext" }
|
||||
serde = { version = "=1.0.118", features = ["derive", "rc"] }
|
||||
serde_derive = "1.0"
|
||||
|
@ -15,6 +15,7 @@ use gotham::handler::Handler;
|
||||
use hyper::server::conn::Http;
|
||||
use openssl::ssl::SslAcceptor;
|
||||
use permission_checker::MononokeIdentitySet;
|
||||
use quiet_stream::QuietShutdownStream;
|
||||
use slog::{warn, Logger};
|
||||
use std::panic::RefUnwindSafe;
|
||||
use std::sync::Arc;
|
||||
@ -48,6 +49,7 @@ pub async fn https<H>(
|
||||
.await
|
||||
.context("Error performing TLS handshake")?;
|
||||
|
||||
|
||||
let tls_socket_data = TlsSocketData::from_ssl(
|
||||
ssl_socket.ssl(),
|
||||
trusted_proxy_idents.as_ref(),
|
||||
@ -56,6 +58,8 @@ pub async fn https<H>(
|
||||
|
||||
let service = handler.clone().into_service(addr, Some(tls_socket_data));
|
||||
|
||||
let ssl_socket = QuietShutdownStream::new(ssl_socket);
|
||||
|
||||
Http::new()
|
||||
.serve_connection(ssl_socket, service)
|
||||
.await
|
||||
@ -88,6 +92,8 @@ where
|
||||
|
||||
let service = handler.clone().into_service(addr, None);
|
||||
|
||||
let socket = QuietShutdownStream::new(socket);
|
||||
|
||||
Http::new()
|
||||
.serve_connection(socket, service)
|
||||
.await
|
||||
|
11
eden/mononoke/quiet_stream/Cargo.toml
Normal file
11
eden/mononoke/quiet_stream/Cargo.toml
Normal file
@ -0,0 +1,11 @@
|
||||
[package]
|
||||
name = "quiet_stream"
|
||||
version = "0.1.0"
|
||||
authors = ["Facebook"]
|
||||
edition = "2018"
|
||||
license = "GPLv2+"
|
||||
|
||||
[dependencies]
|
||||
futures = { version = "0.3.13", features = ["async-await", "compat"] }
|
||||
pin-project = "0.4"
|
||||
tokio = { version = "0.2.25", features = ["full", "test-util"] }
|
@ -44,8 +44,8 @@ mononoke_types = { version = "0.1.0", path = "../../mononoke_types" }
|
||||
openssl = "0.10"
|
||||
percent-encoding = "2.1"
|
||||
permission_checker = { version = "0.1.0", path = "../../permission_checker" }
|
||||
pin-project = "0.4"
|
||||
qps = { version = "0.1.0", path = "../qps" }
|
||||
quiet_stream = { version = "0.1.0", path = "../../quiet_stream" }
|
||||
repo_client = { version = "0.1.0", path = "../../repo_client" }
|
||||
scribe_ext = { version = "0.1.0", path = "../../common/scribe_ext" }
|
||||
scuba_ext = { version = "0.1.0", path = "../../common/scuba_ext" }
|
||||
|
@ -53,8 +53,8 @@ use crate::http_service::MononokeHttpService;
|
||||
use crate::repo_handlers::RepoHandler;
|
||||
use crate::request_handler::{create_conn_logger, request_handler};
|
||||
use crate::security_checker::ConnectionsSecurityChecker;
|
||||
use crate::stream::QuietShutdownStream;
|
||||
use qps::Qps;
|
||||
use quiet_stream::QuietShutdownStream;
|
||||
|
||||
define_stats! {
|
||||
prefix = "mononoke.connection_acceptor";
|
||||
|
@ -16,7 +16,6 @@ mod netspeedtest;
|
||||
mod repo_handlers;
|
||||
mod request_handler;
|
||||
mod security_checker;
|
||||
mod stream;
|
||||
|
||||
pub use crate::connection_acceptor::wait_for_connections_closed;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user