Skip to content

Commit 063a0d8

Browse files
authored
Add re-try logic to ssh sync and check (#274)
1 parent 072a2ac commit 063a0d8

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed
Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22

3+
set -e
4+
35
SERVER_NAME=${SERVER_NAME:-test-server-1}
46

57
SERVER_IP=$(hcloud server ip "${SERVER_NAME}")
@@ -8,4 +10,16 @@ echo "Server IP: ${SERVER_IP}"
810

911
ssh-keygen -f "$HOME/.ssh/known_hosts" -R "${SERVER_IP}" || true
1012

11-
ssh -oStrictHostKeyChecking=no root@${SERVER_IP} echo "Server is ready"
13+
max_retries=10
14+
retry_delay=2
15+
16+
for ((i=1; i<=max_retries; i++)); do
17+
if ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no "root@${SERVER_IP}" echo "Server is ready"; then
18+
exit 0
19+
fi
20+
echo "SSH connection failed (attempt $i/$max_retries), retrying in ${retry_delay}s..."
21+
sleep $retry_delay
22+
done
23+
24+
echo "Failed to establish SSH connection after $max_retries attempts"
25+
exit 1

tools/sync_servers.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,13 @@
22

33
PROJECT_PATH=$(realpath "$(dirname "$0")/..")
44

5-
rsync -e "ssh -o ServerAliveInterval=10 -o ServerAliveCountMax=10" -avP --mkpath\
6-
"$PROJECT_PATH/engine/servers/" $1:./projects/vector-db-benchmark/engine/servers/
5+
max_retries=5
6+
retry_delay=5
7+
for ((i=1; i<=max_retries; i++)); do
8+
if rsync -e "ssh -o ConnectTimeout=30 -o ServerAliveInterval=10 -o ServerAliveCountMax=10" \
9+
-avP --mkpath "$PROJECT_PATH/engine/servers/" "$1:./projects/vector-db-benchmark/engine/servers/"; then
10+
break
11+
fi
12+
echo "rsync failed (attempt $i/$max_retries), retrying in ${retry_delay}s..."
13+
sleep $retry_delay
14+
done

0 commit comments

Comments
 (0)