Skip to content

Commit 0f7e24b

Browse files
authored
Merge pull request #10642 from yufan022/keepalive
chore(query): Reopen keep-alive for MySQL & rollback socket2 to 0.4
2 parents 705ef04 + 53f0591 commit 0f7e24b

File tree

3 files changed

+13
-23
lines changed

3 files changed

+13
-23
lines changed

Cargo.lock

Lines changed: 6 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/query/service/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ scopeguard = "1.1.0"
135135
serde = { workspace = true }
136136
serde_json = { workspace = true }
137137
serde_urlencoded = "0.7.1"
138-
socket2 = "0.5.1"
138+
socket2 = "0.4.7"
139139
strength_reduce = "0.2.4"
140140
tempfile = { version = "3.4.0", optional = true }
141141
time = "0.3.14"

src/query/service/src/servers/mysql/mysql_handler.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ use futures::future::AbortRegistration;
2828
use futures::future::Abortable;
2929
use futures::StreamExt;
3030
use opensrv_mysql::*;
31+
use socket2::SockRef;
3132
use socket2::TcpKeepalive;
3233
use tokio_stream::wrappers::TcpListenerStream;
3334
use tracing::error;
@@ -92,7 +93,7 @@ impl MySQLHandler {
9293
sessions: Arc<SessionManager>,
9394
executor: Arc<Runtime>,
9495
socket: TcpStream,
95-
_keepalive: TcpKeepalive,
96+
keepalive: TcpKeepalive,
9697
) {
9798
executor.spawn(async move {
9899
match sessions.create_session(SessionType::MySQL).await {
@@ -103,11 +104,10 @@ impl MySQLHandler {
103104
Ok(session) => {
104105
info!("MySQL connection coming: {:?}", socket.peer_addr());
105106

106-
// FIXME: tokio TcpStream doesn't implement `AsFd` anymore, this call should be refactored.
107-
// if let Err(e) = SockRef::from(&socket).set_tcp_keepalive(&keepalive)
108-
// {
109-
// warn!("failed to set socket option keepalive {}", e);
110-
// }
107+
// TcpStream must implement AsFd for socket2 0.5, wait https://github.com/tokio-rs/tokio/pull/5514
108+
if let Err(e) = SockRef::from(&socket).set_tcp_keepalive(&keepalive) {
109+
warn!("failed to set socket option keepalive {}", e);
110+
}
111111

112112
if let Err(error) = MySQLConnection::run_on_stream(session, socket) {
113113
error!("Unexpected error occurred during query: {:?}", error);

0 commit comments

Comments
 (0)