@@ -306,21 +306,33 @@ func migrateBoostDeals(ctx context.Context, activeSectors bitfield.BitField, mad
306
306
}
307
307
308
308
if ! c {
309
- var proof abi.RegisteredSealProof
310
- err = tx .QueryRow (`SELECT reg_seal_proof FROM sectors_meta WHERE sp_id = $1 AND sector_num = $2` , mid , deal .SectorID ).Scan (& proof )
309
+ // Check if we can index and announce i.e. we have unsealed copy
310
+ var exists bool
311
+ err = tx .QueryRow (`SELECT EXISTS (SELECT 1 FROM sector_location WHERE miner_id = $1
312
+ AND sector_num = $2
313
+ AND sector_filetype = 1);` , mid , deal .SectorID ).Scan (& exists )
311
314
if err != nil {
312
- return false , fmt .Errorf ("seal: %s: failed to get sector proof : %w" , deal .DealUuid .String (), err )
315
+ return false , fmt .Errorf ("seal: %s: failed to check if sector is unsealed : %w" , deal .DealUuid .String (), err )
313
316
}
314
317
315
- // Add deal to mk12 pipeline in Curio for indexing and announcement
316
- _ , err = tx .Exec (`INSERT INTO market_mk12_deal_pipeline (uuid, sp_id, started, piece_cid, piece_size, raw_size, offline,
317
- after_commp, after_psd, after_find_deal, sector, reg_seal_proof, sector_offset,
318
- sealed, should_index, indexing_created_at, announce)
319
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17) ON CONFLICT (uuid) DO NOTHING` ,
320
- deal .DealUuid .String (), mid , true , prop .PieceCID .String (), prop .PieceSize , deal .NBytesReceived , deal .IsOffline ,
321
- true , true , true , deal .SectorID , proof , deal .Offset , true , true , time .Now (), true )
322
- if err != nil {
323
- return false , fmt .Errorf ("deal: %s: failed to add deal to pipeline for indexing and announcing: %w" , deal .DealUuid .String (), err )
318
+ if exists {
319
+ var proof abi.RegisteredSealProof
320
+ err = tx .QueryRow (`SELECT reg_seal_proof FROM sectors_meta WHERE sp_id = $1 AND sector_num = $2` , mid , deal .SectorID ).Scan (& proof )
321
+ if err != nil {
322
+ return false , fmt .Errorf ("seal: %s: failed to get sector proof: %w" , deal .DealUuid .String (), err )
323
+ }
324
+
325
+ // Add deal to mk12 pipeline in Curio for indexing and announcement
326
+ _ , err = tx .Exec (`INSERT INTO market_mk12_deal_pipeline_migration (
327
+ uuid, sp_id, piece_cid, piece_size, raw_size, sector, reg_seal_proof, sector_offset, should_announce
328
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (uuid) DO NOTHING` ,
329
+ deal .DealUuid .String (), mid , prop .PieceCID .String (), prop .PieceSize , deal .NBytesReceived ,
330
+ deal .SectorID , proof , deal .Offset , deal .AnnounceToIPNI )
331
+ if err != nil {
332
+ return false , fmt .Errorf ("deal: %s: failed to add deal to pipeline for indexing and announcing: %w" , deal .DealUuid .String (), err )
333
+ }
334
+ } else {
335
+ llog .Infof ("Skipping indexing as sector %d is not unsealed" , deal .SectorID )
324
336
}
325
337
}
326
338
return true , nil
@@ -470,7 +482,7 @@ func migrateDDODeals(ctx context.Context, full v1api.FullNode, activeSectors bit
470
482
if i > 0 && i % 100 == 0 {
471
483
fmt .Printf ("Migrating DDO Deals: %d / %d (%0.2f%%)\n " , i , len (deals ), float64 (i )/ float64 (len (deals ))* 100 )
472
484
}
473
- llog := log .With ("Boost Deal" , deal .ID .String ())
485
+ llog := log .With ("DDO Deal" , deal .ID .String ())
474
486
if deal .Err != "" && deal .Retry == types .DealRetryFatal {
475
487
llog .Infow ("Skipping as deal retry is fatal" )
476
488
continue
@@ -553,21 +565,33 @@ func migrateDDODeals(ctx context.Context, full v1api.FullNode, activeSectors bit
553
565
554
566
// TODO: Confirm if using the mk12 pipeline will have any impact for DDO deals
555
567
if ! c {
556
- var proof abi.RegisteredSealProof
557
- err = tx .QueryRow (`SELECT reg_seal_proof FROM sectors_meta WHERE sp_id = $1 AND sector_num = $2` , mid , deal .SectorID ).Scan (& proof )
568
+ // Check if we can index and announce i.e. we have unsealed copy
569
+ var exists bool
570
+ err = tx .QueryRow (`SELECT EXISTS (SELECT 1 FROM sector_location WHERE miner_id = $1
571
+ AND sector_num = $2
572
+ AND sector_filetype = 1);` , mid , deal .SectorID ).Scan (& exists )
558
573
if err != nil {
559
- return false , fmt .Errorf ("deal : %s: failed to get sector proof : %w" , deal .ID .String (), err )
574
+ return false , fmt .Errorf ("seal : %s: failed to check if sector is unsealed : %w" , deal .ID .String (), err )
560
575
}
561
576
562
- // Add deal to mk12 pipeline in Curio for indexing and announcement
563
- _ , err = tx .Exec (`INSERT INTO market_mk12_deal_pipeline (uuid, sp_id, started, piece_cid, piece_size, raw_size, offline,
564
- after_commp, after_psd, after_find_deal, sector, reg_seal_proof, sector_offset,
565
- sealed, should_index, indexing_created_at, announce)
566
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17) ON CONFLICT (uuid) DO NOTHING` ,
567
- deal .ID .String (), mid , true , deal .PieceCID .String (), deal .PieceSize , deal .InboundFileSize , true ,
568
- true , true , true , deal .SectorID , proof , deal .Offset , true , true , time .Now (), true )
569
- if err != nil {
570
- return false , fmt .Errorf ("deal: %s: failed to add DDO deal to pipeline for indexing and announcing: %w" , deal .ID .String (), err )
577
+ if exists {
578
+ var proof abi.RegisteredSealProof
579
+ err = tx .QueryRow (`SELECT reg_seal_proof FROM sectors_meta WHERE sp_id = $1 AND sector_num = $2` , mid , deal .SectorID ).Scan (& proof )
580
+ if err != nil {
581
+ return false , fmt .Errorf ("deal: %s: failed to get sector proof: %w" , deal .ID .String (), err )
582
+ }
583
+
584
+ // Add deal to mk12 pipeline in Curio for indexing and announcement
585
+ _ , err = tx .Exec (`INSERT INTO market_mk12_deal_pipeline_migration (
586
+ uuid, sp_id, piece_cid, piece_size, raw_size, sector, reg_seal_proof, sector_offset, should_announce
587
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (uuid) DO NOTHING` ,
588
+ deal .ID .String (), mid , deal .PieceCID .String (), deal .PieceSize , deal .InboundFileSize ,
589
+ deal .SectorID , proof , deal .Offset , true )
590
+ if err != nil {
591
+ return false , fmt .Errorf ("deal: %s: failed to add DDO deal to pipeline for indexing and announcing: %w" , deal .ID .String (), err )
592
+ }
593
+ } else {
594
+ llog .Infof ("Skipping indexing as sector %d is not unsealed" , deal .SectorID )
571
595
}
572
596
}
573
597
return true , nil
0 commit comments