shard: Fix TestGCDropsObjectInhumedFromWritecache flaky test #1346

Merged
fyrchik merged 1 commit from a-savchuk/frostfs-node:bugfix/1320-shard-rebuild-flaky-test into master 2024-09-02 07:45:16 +00:00
3 changed files with 13 additions and 3 deletions

View file

@ -130,7 +130,7 @@ func (s *Shard) Init(ctx context.Context) error {
s.gc.init(ctx)
s.rb = newRebuilder(s.rebuildLimiter)
if !m.NoMetabase() {
if !m.NoMetabase() && !s.rebuildDisabled {
s.rb.Start(ctx, s.blobStor, s.metaBase, s.log)
}
s.writecacheSealCancel.Store(dummyCancel)
@ -398,7 +398,7 @@ func (s *Shard) Reload(ctx context.Context, opts ...Option) error {
defer unlock()
s.rb.Stop(s.log)
if !s.info.Mode.NoMetabase() {
if !s.info.Mode.NoMetabase() && !s.rebuildDisabled {
defer func() {
s.rb.Start(ctx, s.blobStor, s.metaBase, s.log)
}()

View file

@ -187,7 +187,7 @@ func TestGCDropsObjectInhumedFromWritecache(t *testing.T) {
func testGCDropsObjectInhumedFromWritecache(t *testing.T, flushbeforeInhume bool) {
sh := newCustomShard(t, true, shardOptions{
additionalShardOptions: []Option{WithDisabledGC()},
additionalShardOptions: []Option{WithDisabledGC(), WithDisabledRebuild()},
wcOpts: []writecache.Option{writecache.WithDisableBackgroundFlush()},
})
defer func() { require.NoError(t, sh.Close()) }()

View file

@ -139,6 +139,8 @@ type cfg struct {
reportErrorFunc func(selfID string, message string, err error)
rebuildLimiter RebuildWorkerLimiter
rebuildDisabled bool
}
func defaultCfg() *cfg {
@ -410,6 +412,14 @@ func WithZeroCountCallback(cb EmptyContainersCallback) Option {
}
}
// WithDisabledRebuild returns an option to disable a shard rebuild.
// For testing purposes only.
func WithDisabledRebuild() Option {
return func(c *cfg) {
c.rebuildDisabled = true
}
}
func (s *Shard) fillInfo() {
s.cfg.info.MetaBaseInfo = s.metaBase.DumpInfo()
s.cfg.info.BlobStorInfo = s.blobStor.DumpInfo()