@@ -30,6 +30,7 @@ use crate::log::log::PullLogsError;
30
30
use crate :: segment:: distributed_hnsw_segment:: DistributedHNSWSegmentWriter ;
31
31
use crate :: segment:: metadata_segment:: MetadataSegmentWriter ;
32
32
use crate :: segment:: record_segment:: RecordSegmentReader ;
33
+ use crate :: segment:: record_segment:: RecordSegmentReaderCreationError ;
33
34
use crate :: segment:: record_segment:: RecordSegmentWriter ;
34
35
use crate :: sysdb:: sysdb:: GetCollectionsError ;
35
36
use crate :: sysdb:: sysdb:: GetSegmentsError ;
@@ -292,10 +293,20 @@ impl CompactOrchestrator {
292
293
. await
293
294
{
294
295
Ok ( reader) => reader. get_current_max_offset_id ( ) ,
295
- Err ( _) => {
296
- // todo: explain
297
- Arc :: new ( AtomicU32 :: new ( 0 ) )
298
- }
296
+ Err ( err) => match * err {
297
+ RecordSegmentReaderCreationError :: UninitializedSegment => {
298
+ Arc :: new ( AtomicU32 :: new ( 0 ) )
299
+ }
300
+ _ => {
301
+ tracing:: error!( "Error getting current max offset id: {:?}" , err) ;
302
+ terminate_with_error (
303
+ self . result_channel . take ( ) ,
304
+ err as Box < dyn ChromaError > ,
305
+ ctx,
306
+ ) ;
307
+ return ;
308
+ }
309
+ } ,
299
310
} ;
300
311
301
312
self . num_write_tasks = partitions. len ( ) as i32 ;
@@ -475,20 +486,9 @@ impl CompactOrchestrator {
475
486
let hnsw_provider = self . hnsw_index_provider . clone ( ) ;
476
487
let mut sysdb = self . sysdb . clone ( ) ;
477
488
478
- let record_segment = self
479
- . get_segment ( SegmentType :: BlockfileRecord )
480
- . await
481
- . unwrap ( ) ; // todo
482
-
483
- let mt_segment = self
484
- . get_segment ( SegmentType :: BlockfileMetadata )
485
- . await
486
- . unwrap ( ) ; // todo
487
-
488
- let hnsw_segment = self
489
- . get_segment ( SegmentType :: HnswDistributed )
490
- . await
491
- . unwrap ( ) ; // todo
489
+ let record_segment = self . get_segment ( SegmentType :: BlockfileRecord ) . await ?;
490
+ let mt_segment = self . get_segment ( SegmentType :: BlockfileMetadata ) . await ?;
491
+ let hnsw_segment = self . get_segment ( SegmentType :: HnswDistributed ) . await ?;
492
492
493
493
let borrowed_writers = self
494
494
. writers
0 commit comments