Skip to content

Commit 32150fe

Browse files
authored
Merge pull request #1748 from tursodatabase/lucio/graceful-connisprimary
sqld: gracefully reject schema migration on replica
2 parents 5129424 + 3e192cf commit 32150fe

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

libsql-server/src/rpc/proxy.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,12 @@ impl Proxy for ProxyService {
633633
tracing::debug!("connected: {client_id}");
634634
match connection_maker.create().await {
635635
Ok(conn) => {
636-
assert!(conn.is_primary());
636+
if !conn.is_primary() {
637+
return Err(tonic::Status::failed_precondition(
638+
"cannot run schema migration against a replica",
639+
));
640+
}
641+
637642
let conn = Arc::new(TimeoutConnection::new(conn));
638643
let mut lock = RwLockUpgradableReadGuard::upgrade(lock).await;
639644
lock.insert(client_id, conn.clone());
@@ -703,7 +708,12 @@ impl Proxy for ProxyService {
703708
tracing::debug!("connected: {client_id}");
704709
match connection_maker.create().await {
705710
Ok(conn) => {
706-
assert!(conn.is_primary());
711+
if !conn.is_primary() {
712+
return Err(tonic::Status::failed_precondition(
713+
"cannot run schema migration against a replica",
714+
));
715+
}
716+
707717
let conn = Arc::new(TimeoutConnection::new(conn));
708718
let mut lock = RwLockUpgradableReadGuard::upgrade(lock).await;
709719
lock.insert(client_id, conn.clone());

0 commit comments

Comments
 (0)