Skip to content

Commit e06aeef

Browse files
committed
refactor(connectors): use try_lock for restart guard to avoid queuing
Signed-off-by: seokjin0414 <sars21@hanmail.net> Signed-off-by: shin <sars21@hanmail.net>
1 parent 4d3ff4f commit e06aeef

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

core/connectors/runtime/src/manager/sink.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,10 @@ impl SinkManager {
249249
let details = details.lock().await;
250250
details.restart_guard.clone()
251251
};
252-
let _lock = guard.lock().await;
252+
let Ok(_lock) = guard.try_lock() else {
253+
info!("Restart already in progress for sink connector: {key}, skipping.");
254+
return Ok(());
255+
};
253256

254257
info!("Restarting sink connector: {key}");
255258
self.stop_connector(key, metrics).await?;

core/connectors/runtime/src/manager/source.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,10 @@ impl SourceManager {
257257
let details = details.lock().await;
258258
details.restart_guard.clone()
259259
};
260-
let _lock = guard.lock().await;
260+
let Ok(_lock) = guard.try_lock() else {
261+
info!("Restart already in progress for source connector: {key}, skipping.");
262+
return Ok(());
263+
};
261264

262265
info!("Restarting source connector: {key}");
263266
self.stop_connector(key, metrics).await?;

0 commit comments

Comments
 (0)