Skip to content

Commit 70d159c

Browse files
committed
fix: migrate old config key
if cfg.Internal.UnixFSShardingSizeThreshold is set and cfg.Import.UnixFSHAMTDirectorySizeThreshold is not, assign old value to new field and print ERROR urging user to migrate this way we wont break any existing CI etc
1 parent 104ede9 commit 70d159c

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

core/node/groups.go

+13-14
Original file line numberDiff line numberDiff line change
@@ -408,31 +408,30 @@ func IPFS(ctx context.Context, bcfg *BuildCfg) fx.Option {
408408
return fx.Error(err)
409409
}
410410

411-
// Auto-sharding settings
412-
shardingThresholdString := cfg.Import.UnixFSHAMTDirectorySizeThreshold.WithDefault(config.DefaultUnixFSHAMTDirectorySizeThreshold)
413-
shardSingThresholdInt, err := humanize.ParseBytes(shardingThresholdString)
414-
if err != nil {
415-
return fx.Error(err)
416-
}
417-
shardMaxFanout := cfg.Import.UnixFSHAMTDirectoryMaxFanout.WithDefault(config.DefaultUnixFSHAMTDirectoryMaxFanout)
418-
// TODO: avoid overriding this globally, see if we can extend Directory interface like Get/SetMaxLinks from https://github.com/ipfs/boxo/pull/906
419-
uio.HAMTShardingSize = int(shardSingThresholdInt)
420-
uio.DefaultShardWidth = int(shardMaxFanout)
421-
422411
// Migrate users of deprecated Experimental.ShardingEnabled flag
423412
if cfg.Experimental.ShardingEnabled {
424-
logger.Fatal("The `Experimental.ShardingEnabled` field is no longer used, please remove it from the config.\n" +
425-
"go-ipfs now automatically shards when directory block is bigger than `" + shardingThresholdString + "`.\n" +
426-
"If you need to restore the old behavior (sharding everything) set `Import.UnixFSHAMTDirectorySizeThreshold` to `1B`.\n")
413+
logger.Fatal("The `Experimental.ShardingEnabled` field is no longer used, please remove it from the config. Use Import.UnixFSHAMTDirectorySizeThreshold instead.")
427414
}
428415
if !cfg.Internal.UnixFSShardingSizeThreshold.IsDefault() {
429416
msg := "The `Internal.UnixFSShardingSizeThreshold` field was renamed to `Import.UnixFSHAMTDirectorySizeThreshold`. Please update your config.\n"
430417
if !cfg.Import.UnixFSHAMTDirectorySizeThreshold.IsDefault() {
431418
logger.Fatal(msg) // conflicting values, hard fail
432419
}
433420
logger.Error(msg)
421+
cfg.Import.UnixFSHAMTDirectorySizeThreshold = *cfg.Internal.UnixFSShardingSizeThreshold
434422
}
435423

424+
// Auto-sharding settings
425+
shardingThresholdString := cfg.Import.UnixFSHAMTDirectorySizeThreshold.WithDefault(config.DefaultUnixFSHAMTDirectorySizeThreshold)
426+
shardSingThresholdInt, err := humanize.ParseBytes(shardingThresholdString)
427+
if err != nil {
428+
return fx.Error(err)
429+
}
430+
shardMaxFanout := cfg.Import.UnixFSHAMTDirectoryMaxFanout.WithDefault(config.DefaultUnixFSHAMTDirectoryMaxFanout)
431+
// TODO: avoid overriding this globally, see if we can extend Directory interface like Get/SetMaxLinks from https://github.com/ipfs/boxo/pull/906
432+
uio.HAMTShardingSize = int(shardSingThresholdInt)
433+
uio.DefaultShardWidth = int(shardMaxFanout)
434+
436435
return fx.Options(
437436
bcfgOpts,
438437

0 commit comments

Comments
 (0)