Skip to content

Commit 4b0fb7e

Browse files
committed
do not test for migration on replicas
1 parent 1d7fb16 commit 4b0fb7e

File tree

9 files changed

+49
-29
lines changed

9 files changed

+49
-29
lines changed

libsql-server/src/connection/connection_core.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ mod test {
659659
let ctx = RequestContext::new(
660660
Authenticated::FullAccess,
661661
NamespaceName::default(),
662-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
662+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
663663
.await
664664
.unwrap(),
665665
);

libsql-server/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,7 @@ where
570570
&self.path,
571571
meta_conn,
572572
meta_store_wal_manager,
573+
db_kind,
573574
)
574575
.await?;
575576

libsql-server/src/namespace/configurator/replica.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ impl ReplicaConfigurator {
4949
}
5050

5151
impl ConfigureNamespace for ReplicaConfigurator {
52+
#[tracing::instrument(skip_all, fields(name))]
5253
fn setup<'a>(
5354
&'a self,
5455
meta_store_handle: MetaStoreHandle,
@@ -65,6 +66,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
6566
let channel = self.channel.clone();
6667
let uri = self.uri.clone();
6768

69+
dbg!(&name);
6870
let rpc_client = ReplicationLogClient::with_origin(channel.clone(), uri.clone());
6971
let client = crate::replication::replicator_client::Client::new(
7072
name.clone(),
@@ -86,7 +88,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
8688

8789
tracing::debug!("try perform handshake");
8890
// force a handshake now, to retrieve the primary's current replication index
89-
match replicator.try_perform_handshake().await {
91+
match replicator.try_perform_handshake().await.map_err(|e| dbg!(e)) {
9092
Err(libsql_replication::replicator::Error::Meta(
9193
libsql_replication::meta::Error::LogIncompatible,
9294
)) => {
@@ -110,6 +112,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
110112
Ok(_) => (),
111113
}
112114

115+
dbg!(&name);
113116
tracing::debug!("done performing handshake");
114117

115118
let primary_current_replicatio_index =
@@ -167,6 +170,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
167170
}
168171
});
169172

173+
dbg!(&name);
170174
let stats = make_stats(
171175
&db_path,
172176
&mut join_set,
@@ -177,6 +181,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
177181
)
178182
.await?;
179183

184+
dbg!(&name);
180185
let connection_maker = MakeLegacyConnection::new(
181186
db_path.clone(),
182187
PassthroughWalWrapper,
@@ -195,6 +200,7 @@ impl ConfigureNamespace for ReplicaConfigurator {
195200
)
196201
.await?;
197202

203+
dbg!(&name);
198204
let connection_maker = Arc::new(
199205
MakeWriteProxyConn::new(
200206
channel.clone(),
@@ -215,11 +221,13 @@ impl ConfigureNamespace for ReplicaConfigurator {
215221
),
216222
);
217223

224+
dbg!(&name);
218225
join_set.spawn(run_storage_monitor(
219226
Arc::downgrade(&stats),
220227
connection_maker.clone(),
221228
));
222229

230+
dbg!(&name);
223231
Ok(Namespace {
224232
tasks: join_set,
225233
db: Database::Replica(ReplicaDatabase { connection_maker }),

libsql-server/src/namespace/meta_store.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use tokio::sync::{
2323

2424
use crate::config::BottomlessConfig;
2525
use crate::connection::config::DatabaseConfig;
26+
use crate::database::DatabaseKind;
2627
use crate::schema::{MigrationDetails, MigrationSummary};
2728
use crate::{
2829
config::MetaStoreConfig, connection::legacy::open_conn_active_checkpoint, error::Error, Result,
@@ -74,6 +75,7 @@ struct MetaStoreInner {
7475
configs: tokio::sync::Mutex<HashMap<NamespaceName, Sender<InnerConfig>>>,
7576
conn: tokio::sync::Mutex<MetaStoreConnection>,
7677
wal_manager: MetaStoreWalManager,
78+
db_kind: DatabaseKind,
7779
}
7880

7981
fn setup_connection(conn: &rusqlite::Connection) -> Result<()> {
@@ -182,13 +184,15 @@ impl MetaStoreInner {
182184
conn: MetaStoreConnection,
183185
wal_manager: MetaStoreWalManager,
184186
config: MetaStoreConfig,
187+
db_kind: DatabaseKind,
185188
) -> Result<Self> {
186189
setup_connection(&conn)?;
187190

188191
let mut this = MetaStoreInner {
189192
configs: Default::default(),
190193
conn: conn.into(),
191194
wal_manager,
195+
db_kind,
192196
};
193197

194198
if config.allow_recover_from_fs {
@@ -350,9 +354,11 @@ fn try_process(
350354
let mut conn = inner.conn.blocking_lock();
351355
if let Some(schema) = config.shared_schema_name.as_ref() {
352356
let tx = conn.transaction()?;
353-
if let Some(ref schema) = config.shared_schema_name {
354-
if crate::schema::db::has_pending_migration_jobs(&tx, schema)? {
355-
return Err(crate::Error::PendingMigrationOnSchema(schema.clone()));
357+
if inner.db_kind.is_primary() {
358+
if let Some(ref schema) = config.shared_schema_name {
359+
if crate::schema::db::has_pending_migration_jobs(&tx, schema)? {
360+
return Err(crate::Error::PendingMigrationOnSchema(schema.clone()));
361+
}
356362
}
357363
}
358364
tx.execute(
@@ -394,6 +400,7 @@ impl MetaStore {
394400
base_path: &Path,
395401
conn: MetaStoreConnection,
396402
wal_manager: MetaStoreWalManager,
403+
db_kind: DatabaseKind,
397404
) -> Result<Self> {
398405
let (changes_tx, mut changes_rx) = mpsc::channel(256);
399406

@@ -402,7 +409,7 @@ impl MetaStore {
402409
let maybe_inner = tokio::task::spawn_blocking({
403410
let base_path = base_path.to_owned();
404411
let config = config.clone();
405-
move || MetaStoreInner::new(&base_path, conn, wal_manager, config.clone())
412+
move || MetaStoreInner::new(&base_path, conn, wal_manager, config.clone(), db_kind)
406413
})
407414
.await
408415
.unwrap();
@@ -446,7 +453,7 @@ impl MetaStore {
446453

447454
let inner = tokio::task::spawn_blocking({
448455
let base_path = base_path.to_owned();
449-
move || MetaStoreInner::new(&base_path, conn, wal, config)
456+
move || MetaStoreInner::new(&base_path, conn, wal, config, db_kind)
450457
})
451458
.await
452459
.unwrap()?;

libsql-server/src/namespace/store.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ impl NamespaceStore {
398398
let init = async {
399399
let ns = self
400400
.make_namespace(namespace, db_config, restore_option)
401-
.await?;
401+
.await.map_err(|e| dbg!(e))?;
402402
Ok(Some(ns))
403403
};
404404

@@ -516,6 +516,7 @@ impl NamespaceStore {
516516
}
517517

518518
fn get_configurator(&self, db_config: &DatabaseConfig) -> &DynConfigurator {
519+
dbg!(self.inner.db_kind);
519520
match self.inner.db_kind {
520521
DatabaseKind::Primary if db_config.is_shared_schema => {
521522
self.inner.configurators.configure_schema().unwrap()

libsql-server/src/replication/replicator_client.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ impl ReplicatorClient for Client {
108108
self.primary_replication_index = hello.current_replication_index;
109109
self.session_token.replace(hello.session_token.clone());
110110

111+
dbg!();
111112
if let Some(config) = &hello.config {
112113
// HACK: if we load a shared schema db before the main schema is replicated,
113114
// inserting the new database in the meta store will cause a foreign constraint Error
@@ -116,15 +117,17 @@ impl ReplicatorClient for Client {
116117
if let Some(ref name) = config.shared_schema_name {
117118
let name = NamespaceName::from_string(name.clone())
118119
.map_err(|_| Status::new(Code::InvalidArgument, "invalid namespace name"))?;
120+
dbg!(&name);
119121
self.store
120122
.with(name, |_| ())
121123
.await
122124
.map_err(|e| Status::new(Code::Internal, e.to_string()))?;
123125
}
126+
124127
self.meta_store_handle
125128
.store(DatabaseConfig::from(config))
126129
.await
127-
.map_err(|e| Error::Internal(e.into()))?;
130+
.map_err(|e| dbg!(Error::Internal(e.into())))?;
128131

129132
tracing::debug!("replica config has been updated");
130133
} else {

libsql-server/src/rpc/streaming_exec.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ pub mod test {
396396
let ctx = RequestContext::new(
397397
Authenticated::Anonymous,
398398
NamespaceName::default(),
399-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
399+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
400400
.await
401401
.unwrap(),
402402
);
@@ -422,7 +422,7 @@ pub mod test {
422422
let ctx = RequestContext::new(
423423
Authenticated::FullAccess,
424424
NamespaceName::default(),
425-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
425+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
426426
.await
427427
.unwrap(),
428428
);
@@ -444,7 +444,7 @@ pub mod test {
444444
let ctx = RequestContext::new(
445445
Authenticated::FullAccess,
446446
NamespaceName::default(),
447-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
447+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
448448
.await
449449
.unwrap(),
450450
);
@@ -468,7 +468,7 @@ pub mod test {
468468
let ctx = RequestContext::new(
469469
Authenticated::FullAccess,
470470
NamespaceName::default(),
471-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
471+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
472472
.await
473473
.unwrap(),
474474
);
@@ -525,7 +525,7 @@ pub mod test {
525525
let ctx = RequestContext::new(
526526
Authenticated::FullAccess,
527527
NamespaceName::default(),
528-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
528+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
529529
.await
530530
.unwrap(),
531531
);
@@ -552,7 +552,7 @@ pub mod test {
552552
let ctx = RequestContext::new(
553553
Authenticated::FullAccess,
554554
NamespaceName::default(),
555-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
555+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
556556
.await
557557
.unwrap(),
558558
);
@@ -579,7 +579,7 @@ pub mod test {
579579
let ctx = RequestContext::new(
580580
Authenticated::FullAccess,
581581
NamespaceName::default(),
582-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
582+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
583583
.await
584584
.unwrap(),
585585
);
@@ -608,7 +608,7 @@ pub mod test {
608608
let ctx = RequestContext::new(
609609
Authenticated::FullAccess,
610610
NamespaceName::default(),
611-
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager)
611+
MetaStore::new(Default::default(), tmp.path(), maker().unwrap(), manager, crate::database::DatabaseKind::Primary)
612612
.await
613613
.unwrap(),
614614
);

libsql-server/src/schema/db.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ mod test {
511511
let tmp = tempdir().unwrap();
512512
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
513513
let conn = maker().unwrap();
514-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
514+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
515515
.await
516516
.unwrap();
517517
let mut conn = maker().unwrap();
@@ -555,7 +555,7 @@ mod test {
555555
let tmp = tempdir().unwrap();
556556
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
557557
let conn = maker().unwrap();
558-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
558+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
559559
.await
560560
.unwrap();
561561

@@ -577,7 +577,7 @@ mod test {
577577
let tmp = tempdir().unwrap();
578578
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
579579
let conn = maker().unwrap();
580-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
580+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
581581
.await
582582
.unwrap();
583583
let mut conn = maker().unwrap();
@@ -624,7 +624,7 @@ mod test {
624624
let tmp = tempdir().unwrap();
625625
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
626626
let conn = maker().unwrap();
627-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
627+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
628628
.await
629629
.unwrap();
630630
let mut conn = maker().unwrap();
@@ -674,7 +674,7 @@ mod test {
674674
let tmp = tempdir().unwrap();
675675
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
676676
let conn = maker().unwrap();
677-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
677+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
678678
.await
679679
.unwrap();
680680
let mut conn = maker().unwrap();
@@ -725,7 +725,7 @@ mod test {
725725
let tmp = tempdir().unwrap();
726726
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
727727
let conn = maker().unwrap();
728-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
728+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
729729
.await
730730
.unwrap();
731731
let mut conn = maker().unwrap();
@@ -751,7 +751,7 @@ mod test {
751751
let tmp = tempdir().unwrap();
752752
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
753753
let conn = maker().unwrap();
754-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
754+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, crate::database::DatabaseKind::Primary)
755755
.await
756756
.unwrap();
757757
let mut conn = maker().unwrap();

libsql-server/src/schema/scheduler.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ mod test {
826826
let tmp = tempdir().unwrap();
827827
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
828828
let conn = maker().unwrap();
829-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
829+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, DatabaseKind::Primary)
830830
.await
831831
.unwrap();
832832
let (sender, mut receiver) = mpsc::channel(100);
@@ -950,7 +950,7 @@ mod test {
950950
{
951951
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
952952
let conn = maker().unwrap();
953-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
953+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, DatabaseKind::Primary)
954954
.await
955955
.unwrap();
956956
let (sender, mut receiver) = mpsc::channel(100);
@@ -1025,7 +1025,7 @@ mod test {
10251025

10261026
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
10271027
let conn = maker().unwrap();
1028-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
1028+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, DatabaseKind::Primary)
10291029
.await
10301030
.unwrap();
10311031
let (sender, _receiver) = mpsc::channel(100);
@@ -1053,7 +1053,7 @@ mod test {
10531053
let tmp = tempdir().unwrap();
10541054
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
10551055
let conn = maker().unwrap();
1056-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
1056+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, DatabaseKind::Primary)
10571057
.await
10581058
.unwrap();
10591059
let (sender, mut receiver) = mpsc::channel(100);
@@ -1127,7 +1127,7 @@ mod test {
11271127
let tmp = tempdir().unwrap();
11281128
let (maker, manager) = metastore_connection_maker(None, tmp.path()).await.unwrap();
11291129
let conn = maker().unwrap();
1130-
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager)
1130+
let meta_store = MetaStore::new(Default::default(), tmp.path(), conn, manager, DatabaseKind::Primary)
11311131
.await
11321132
.unwrap();
11331133
let (sender, _receiver) = mpsc::channel(100);

0 commit comments

Comments
 (0)