From 16b7901fded585526162e24f706f457a0ac8629f Mon Sep 17 00:00:00 2001 From: Michal Niewrzal Date: Wed, 22 Feb 2023 11:32:26 +0100 Subject: [PATCH] satellite/metabase: add piece size calculation to segment This code is essentially replacement for eestream.CalcPieceSize. To call eestream.CalcPieceSize we need eestream.RedundancyStrategy which is not trivial to get as it requires infectious.FEC. For example infectious.FEC creation is visible on GE loop observer CPU profile because we were doing this for each segment in DB. New method was added to storj.Redundancy and here we are just wiring it with metabase Segment. BenchmarkSegmentPieceSize BenchmarkSegmentPieceSize/eestream.CalcPieceSize BenchmarkSegmentPieceSize/eestream.CalcPieceSize-8 5822 189189 ns/op 9776 B/op 8 allocs/op BenchmarkSegmentPieceSize/segment.PieceSize BenchmarkSegmentPieceSize/segment.PieceSize-8 94721329 11.49 ns/op 0 B/op 0 allocs/op Change-Id: I5a8b4237aedd1424c54ed0af448061a236b00295 --- cmd/satellite/repair_segment.go | 2 +- go.mod | 2 +- go.sum | 4 +-- satellite/accounting/projectusage_test.go | 16 ++------- satellite/audit/reverifier.go | 8 +---- satellite/gracefulexit/endpoint.go | 11 ++---- satellite/gracefulexit/pathcollector.go | 12 +------ satellite/metabase/common_test.go | 30 ++++++++++++++++ satellite/metabase/get.go | 5 +++ satellite/metabase/segmentloop/service.go | 5 +++ satellite/metainfo/endpoint_segment.go | 11 +++++- .../metainfo/pointerverification/service.go | 8 +---- satellite/orders/service.go | 34 ++++++------------- satellite/repair/repairer/segments.go | 9 ++--- testsuite/storjscan/go.mod | 2 +- testsuite/storjscan/go.sum | 4 +-- testsuite/ui/go.mod | 2 +- testsuite/ui/go.sum | 4 +-- 18 files changed, 79 insertions(+), 90 deletions(-) diff --git a/cmd/satellite/repair_segment.go b/cmd/satellite/repair_segment.go index 5306a183a..0f9910396 100644 --- a/cmd/satellite/repair_segment.go +++ b/cmd/satellite/repair_segment.go @@ -382,7 +382,7 @@ func downloadSegment(ctx context.Context, log *zap.Logger, peer *satellite.Repai } esScheme := eestream.NewUnsafeRSScheme(fec, redundancy.ErasureShareSize()) - pieceSize := eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) + pieceSize := segment.PieceSize() expectedSize := pieceSize * int64(redundancy.RequiredCount()) ctx, cancel := context.WithCancel(ctx) diff --git a/go.mod b/go.mod index b64c90ae9..19ace72ef 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e gopkg.in/segmentio/analytics-go.v3 v3.1.0 gopkg.in/yaml.v3 v3.0.1 - storj.io/common v0.0.0-20230214163549-c8518523a6f0 + storj.io/common v0.0.0-20230221110830-7591b205266e storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a storj.io/monkit-jaeger v0.0.0-20220915074555-d100d7589f41 storj.io/private v0.0.0-20230123202745-d3e63b336444 diff --git a/go.sum b/go.sum index 222aaf0b8..68da1cfcc 100644 --- a/go.sum +++ b/go.sum @@ -959,8 +959,8 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20230214163549-c8518523a6f0 h1:N7St0/39hhmSPtYybP6rrPwvjHrJUHggbFmbRNd0XUc= -storj.io/common v0.0.0-20230214163549-c8518523a6f0/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= +storj.io/common v0.0.0-20230221110830-7591b205266e h1:DG9G8OpdSXDOY6ACaevayS2r7nf5flqyxrZtD00sBlQ= +storj.io/common v0.0.0-20230221110830-7591b205266e/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a h1:FBaOc8c5efmW3tmPsiGy07USMkOSu/tyYCZpu2ro0y8= storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= diff --git a/satellite/accounting/projectusage_test.go b/satellite/accounting/projectusage_test.go index 5366bae15..e82edfac0 100644 --- a/satellite/accounting/projectusage_test.go +++ b/satellite/accounting/projectusage_test.go @@ -23,7 +23,6 @@ import ( "storj.io/common/memory" "storj.io/common/pb" - "storj.io/common/storj" "storj.io/common/sync2" "storj.io/common/testcontext" "storj.io/common/testrand" @@ -36,7 +35,6 @@ import ( "storj.io/storj/satellite/satellitedb/satellitedbtest" snorders "storj.io/storj/storagenode/orders" "storj.io/uplink" - "storj.io/uplink/private/eestream" ) func TestProjectUsageStorage(t *testing.T) { @@ -1080,27 +1078,17 @@ func TestProjectUsage_BandwidthDeadAllocation(t *testing.T) { now := time.Now() project := planet.Uplinks[0].Projects[0] - sat := planet.Satellites[0] - rs, err := eestream.NewRedundancyStrategyFromStorj(storj.RedundancyScheme{ - RequiredShares: int16(sat.Config.Metainfo.RS.Min), - RepairShares: int16(sat.Config.Metainfo.RS.Repair), - OptimalShares: int16(sat.Config.Metainfo.RS.Success), - TotalShares: int16(sat.Config.Metainfo.RS.Total), - ShareSize: sat.Config.Metainfo.RS.ErasureShareSize.Int32(), - }) - require.NoError(t, err) - dataSize := 4 * memory.MiB data := testrand.Bytes(dataSize) - err = planet.Uplinks[0].Upload(ctx, planet.Satellites[0], "testbucket", "test/path1", data) + err := planet.Uplinks[0].Upload(ctx, planet.Satellites[0], "testbucket", "test/path1", data) require.NoError(t, err) segments, err := planet.Satellites[0].Metabase.DB.TestingAllSegments(ctx) require.NoError(t, err) require.Len(t, segments, 1) - pieceSize := eestream.CalcPieceSize(int64(segments[0].EncryptedSize), rs) + pieceSize := segments[0].PieceSize() reader, cleanFn, err := planet.Uplinks[0].DownloadStream(ctx, planet.Satellites[0], "testbucket", "test/path1") require.NoError(t, err) diff --git a/satellite/audit/reverifier.go b/satellite/audit/reverifier.go index 4855532d1..36c1fbc90 100644 --- a/satellite/audit/reverifier.go +++ b/satellite/audit/reverifier.go @@ -22,7 +22,6 @@ import ( "storj.io/common/uuid" "storj.io/storj/satellite/metabase" "storj.io/storj/satellite/overlay" - "storj.io/uplink/private/eestream" "storj.io/uplink/private/piecestore" ) @@ -176,12 +175,7 @@ func (reverifier *Reverifier) DoReverifyPiece(ctx context.Context, logger *zap.L return OutcomeNotNecessary, reputation, nil } - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return OutcomeNotPerformed, reputation, Error.Wrap(err) - } - - pieceSize := eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) + pieceSize := segment.PieceSize() limit, piecePrivateKey, cachedNodeInfo, err := reverifier.orders.CreateAuditPieceOrderLimit(ctx, locator.NodeID, uint16(locator.PieceNum), segment.RootPieceID, int32(pieceSize)) if err != nil { diff --git a/satellite/gracefulexit/endpoint.go b/satellite/gracefulexit/endpoint.go index 4e55b497f..1130fbf92 100644 --- a/satellite/gracefulexit/endpoint.go +++ b/satellite/gracefulexit/endpoint.go @@ -27,7 +27,6 @@ import ( "storj.io/storj/satellite/orders" "storj.io/storj/satellite/overlay" "storj.io/storj/satellite/reputation" - "storj.io/uplink/private/eestream" ) // millis for the transfer queue building ticker. @@ -868,19 +867,13 @@ func (endpoint *Endpoint) generateExitStatusRequest(ctx context.Context, nodeID func (endpoint *Endpoint) calculatePieceSize(ctx context.Context, segment metabase.Segment, incomplete *TransferQueueItem) (int64, error) { nodeID := incomplete.NodeID - // calculate piece size - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return 0, Error.Wrap(err) - } - - if len(segment.Pieces) > redundancy.OptimalThreshold() { + if len(segment.Pieces) > int(segment.Redundancy.OptimalShares) { endpoint.log.Debug("segment has more pieces than required. removing node from segment.", zap.Stringer("node ID", nodeID), zap.Int32("piece num", incomplete.PieceNum)) return 0, ErrAboveOptimalThreshold.New("") } - return eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy), nil + return segment.PieceSize(), nil } func (endpoint *Endpoint) getValidSegment(ctx context.Context, streamID uuid.UUID, position metabase.SegmentPosition, originalRootPieceID storj.PieceID) (metabase.Segment, error) { diff --git a/satellite/gracefulexit/pathcollector.go b/satellite/gracefulexit/pathcollector.go index b0ad39866..b9a49d5a9 100644 --- a/satellite/gracefulexit/pathcollector.go +++ b/satellite/gracefulexit/pathcollector.go @@ -12,7 +12,6 @@ import ( "storj.io/common/storj" "storj.io/storj/satellite/metabase/rangedloop" "storj.io/storj/satellite/metabase/segmentloop" - "storj.io/uplink/private/eestream" ) var remoteSegmentFunc = mon.Task() @@ -71,22 +70,13 @@ func (collector *PathCollector) RemoteSegment(ctx context.Context, segment *segm } func (collector *PathCollector) handleRemoteSegment(ctx context.Context, segment *segmentloop.Segment) (err error) { - pieceSize := int64(-1) - numPieces := len(segment.Pieces) for _, piece := range segment.Pieces { if _, ok := collector.nodeIDStorage[piece.StorageNode]; !ok { continue } - // avoid creating new redundancy strategy for every segment piece - if pieceSize == -1 { - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return err - } - pieceSize = eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) - } + pieceSize := segment.PieceSize() collector.nodeIDStorage[piece.StorageNode] += pieceSize diff --git a/satellite/metabase/common_test.go b/satellite/metabase/common_test.go index 366a69ec0..edddaba6e 100644 --- a/satellite/metabase/common_test.go +++ b/satellite/metabase/common_test.go @@ -9,9 +9,12 @@ import ( "github.com/stretchr/testify/require" + "storj.io/common/memory" + "storj.io/common/storj" "storj.io/common/testrand" "storj.io/common/uuid" "storj.io/storj/satellite/metabase" + "storj.io/uplink/private/eestream" ) func TestParseBucketPrefixInvalid(t *testing.T) { @@ -716,3 +719,30 @@ func TestPiecesUpdate(t *testing.T) { }) } } + +func BenchmarkSegmentPieceSize(b *testing.B) { + segment := metabase.Segment{ + EncryptedSize: 64 * memory.MiB.Int32(), + Redundancy: storj.RedundancyScheme{ + Algorithm: storj.ReedSolomon, + RequiredShares: 29, + RepairShares: 35, + OptimalShares: 80, + TotalShares: 110, + ShareSize: 256, + }, + } + + b.Run("eestream.CalcPieceSize", func(b *testing.B) { + for k := 0; k < b.N; k++ { + redundancyScheme, _ := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) + _ = eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancyScheme) + } + }) + + b.Run("segment.PieceSize", func(b *testing.B) { + for k := 0; k < b.N; k++ { + _ = segment.PieceSize() + } + }) +} diff --git a/satellite/metabase/get.go b/satellite/metabase/get.go index 4b9fd791f..9d8c37b1f 100644 --- a/satellite/metabase/get.go +++ b/satellite/metabase/get.go @@ -52,6 +52,11 @@ func (s Segment) Expired(now time.Time) bool { return s.ExpiresAt != nil && s.ExpiresAt.Before(now) } +// PieceSize returns calculated piece size for segment. +func (s Segment) PieceSize() int64 { + return s.Redundancy.PieceSize(int64(s.EncryptedSize)) +} + // GetObjectExactVersion contains arguments necessary for fetching an information // about exact object version. type GetObjectExactVersion struct { diff --git a/satellite/metabase/segmentloop/service.go b/satellite/metabase/segmentloop/service.go index 81c8c7d36..4412e6303 100644 --- a/satellite/metabase/segmentloop/service.go +++ b/satellite/metabase/segmentloop/service.go @@ -43,6 +43,11 @@ func (s *Segment) Expired(now time.Time) bool { return s.ExpiresAt != nil && s.ExpiresAt.Before(now) } +// PieceSize returns calculated piece size for segment. +func (s Segment) PieceSize() int64 { + return s.Redundancy.PieceSize(int64(s.EncryptedSize)) +} + // Observer is an interface defining an observer that can subscribe to the segments loop. // // architecture: Observer diff --git a/satellite/metainfo/endpoint_segment.go b/satellite/metainfo/endpoint_segment.go index 29fec085a..b8c60f097 100644 --- a/satellite/metainfo/endpoint_segment.go +++ b/satellite/metainfo/endpoint_segment.go @@ -64,7 +64,16 @@ func (endpoint *Endpoint) BeginSegment(ctx context.Context, req *pb.SegmentBegin return nil, rpcstatus.Error(rpcstatus.InvalidArgument, err.Error()) } - maxPieceSize := eestream.CalcPieceSize(req.MaxOrderLimit, redundancy) + config := endpoint.config + defaultRedundancy := storj.RedundancyScheme{ + Algorithm: storj.ReedSolomon, + RequiredShares: int16(config.RS.Min), + RepairShares: int16(config.RS.Repair), + OptimalShares: int16(config.RS.Success), + TotalShares: int16(config.RS.Total), + ShareSize: config.RS.ErasureShareSize.Int32(), + } + maxPieceSize := defaultRedundancy.PieceSize(req.MaxOrderLimit) request := overlay.FindStorageNodesRequest{ RequestedCount: redundancy.TotalCount(), diff --git a/satellite/metainfo/pointerverification/service.go b/satellite/metainfo/pointerverification/service.go index 37c80d372..efb785fe0 100644 --- a/satellite/metainfo/pointerverification/service.go +++ b/satellite/metainfo/pointerverification/service.go @@ -15,7 +15,6 @@ import ( "storj.io/common/signing" "storj.io/common/storj" "storj.io/storj/satellite/overlay" - "storj.io/uplink/private/eestream" ) var ( @@ -62,12 +61,7 @@ func (service *Service) VerifySizes(ctx context.Context, redundancy storj.Redund return Error.New("no remote pieces") } - redundancyScheme, err := eestream.NewRedundancyStrategyFromStorj(redundancy) - if err != nil { - return Error.New("invalid redundancy strategy: %v", err) - } - - expectedSize := eestream.CalcPieceSize(encryptedSize, redundancyScheme) + expectedSize := redundancy.PieceSize(encryptedSize) if expectedSize != commonSize { return Error.New("expected size is different from provided (%d != %d)", expectedSize, commonSize) } diff --git a/satellite/orders/service.go b/satellite/orders/service.go index 3289b1c74..be56c6b53 100644 --- a/satellite/orders/service.go +++ b/satellite/orders/service.go @@ -19,7 +19,6 @@ import ( "storj.io/storj/satellite/internalpb" "storj.io/storj/satellite/metabase" "storj.io/storj/satellite/overlay" - "storj.io/uplink/private/eestream" ) var ( @@ -129,11 +128,7 @@ func (service *Service) updateBandwidth(ctx context.Context, bucket metabase.Buc func (service *Service) CreateGetOrderLimits(ctx context.Context, bucket metabase.BucketLocation, segment metabase.Segment, desiredNodes int32, overrideLimit int64) (_ []*pb.AddressedOrderLimit, privateKey storj.PiecePrivateKey, err error) { defer mon.Task()(&ctx)(&err) - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return nil, storj.PiecePrivateKey{}, Error.Wrap(err) - } - orderLimit := eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) + orderLimit := segment.PieceSize() if overrideLimit > 0 && overrideLimit < orderLimit { orderLimit = overrideLimit } @@ -176,9 +171,9 @@ func (service *Service) CreateGetOrderLimits(ctx context.Context, bucket metabas break } } - if len(signer.AddressedLimits) < redundancy.RequiredCount() { + if len(signer.AddressedLimits) < int(segment.Redundancy.RequiredShares) { mon.Meter("download_failed_not_enough_pieces_uplink").Mark(1) //mon:locked - return nil, storj.PiecePrivateKey{}, ErrDownloadFailedNotEnoughPieces.New("not enough orderlimits: got %d, required %d", len(signer.AddressedLimits), redundancy.RequiredCount()) + return nil, storj.PiecePrivateKey{}, ErrDownloadFailedNotEnoughPieces.New("not enough orderlimits: got %d, required %d", len(signer.AddressedLimits), segment.Redundancy.RequiredShares) } if err := service.updateBandwidth(ctx, bucket, signer.AddressedLimits...); err != nil { @@ -404,13 +399,8 @@ func (service *Service) createAuditOrderLimitWithSigner(ctx context.Context, nod func (service *Service) CreateGetRepairOrderLimits(ctx context.Context, bucket metabase.BucketLocation, segment metabase.Segment, healthy metabase.Pieces) (_ []*pb.AddressedOrderLimit, _ storj.PiecePrivateKey, cachedNodesInfo map[storj.NodeID]overlay.NodeReputation, err error) { defer mon.Task()(&ctx)(&err) - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return nil, storj.PiecePrivateKey{}, nil, Error.Wrap(err) - } - - pieceSize := eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) - totalPieces := redundancy.TotalCount() + pieceSize := segment.PieceSize() + totalPieces := segment.Redundancy.TotalShares nodeIDs := make([]storj.NodeID, len(segment.Pieces)) for i, piece := range segment.Pieces { @@ -450,8 +440,8 @@ func (service *Service) CreateGetRepairOrderLimits(ctx context.Context, bucket m limitsCount++ } - if limitsCount < redundancy.RequiredCount() { - err = ErrDownloadFailedNotEnoughPieces.New("not enough nodes available: got %d, required %d", limitsCount, redundancy.RequiredCount()) + if limitsCount < int(segment.Redundancy.RequiredShares) { + err = ErrDownloadFailedNotEnoughPieces.New("not enough nodes available: got %d, required %d", limitsCount, segment.Redundancy.RequiredShares) return nil, storj.PiecePrivateKey{}, nil, errs.Combine(err, nodeErrors.Err()) } @@ -463,14 +453,10 @@ func (service *Service) CreatePutRepairOrderLimits(ctx context.Context, bucket m defer mon.Task()(&ctx)(&err) // Create the order limits for being used to upload the repaired pieces - redundancy, err := eestream.NewRedundancyStrategyFromStorj(segment.Redundancy) - if err != nil { - return nil, storj.PiecePrivateKey{}, Error.Wrap(err) - } - pieceSize := eestream.CalcPieceSize(int64(segment.EncryptedSize), redundancy) + pieceSize := segment.PieceSize() - totalPieces := redundancy.TotalCount() - totalPiecesAfterRepair := int(math.Ceil(float64(redundancy.OptimalThreshold())*optimalThresholdMultiplier)) + numPiecesInExcludedCountries + totalPieces := int(segment.Redundancy.TotalShares) + totalPiecesAfterRepair := int(math.Ceil(float64(segment.Redundancy.OptimalShares)*optimalThresholdMultiplier)) + numPiecesInExcludedCountries if totalPiecesAfterRepair > totalPieces { totalPiecesAfterRepair = totalPieces diff --git a/satellite/repair/repairer/segments.go b/satellite/repair/repairer/segments.go index 23a196aec..454a3926f 100644 --- a/satellite/repair/repairer/segments.go +++ b/satellite/repair/repairer/segments.go @@ -635,11 +635,6 @@ func (repairer *SegmentRepairer) AdminFetchPieces(ctx context.Context, seg *meta return nil, errs.New("cannot download an inline segment") } - redundancy, err := eestream.NewRedundancyStrategyFromStorj(seg.Redundancy) - if err != nil { - return nil, errs.New("invalid redundancy strategy: %w", err) - } - if len(seg.Pieces) < int(seg.Redundancy.RequiredShares) { return nil, errs.New("segment only has %d pieces; needs %d for reconstruction", seg.Pieces, seg.Redundancy.RequiredShares) } @@ -651,10 +646,10 @@ func (repairer *SegmentRepairer) AdminFetchPieces(ctx context.Context, seg *meta return nil, errs.New("could not create order limits: %w", err) } - pieceSize := eestream.CalcPieceSize(int64(seg.EncryptedSize), redundancy) + pieceSize := seg.PieceSize() pieceInfos = make([]AdminFetchInfo, len(getOrderLimits)) - limiter := sync2.NewLimiter(redundancy.RequiredCount()) + limiter := sync2.NewLimiter(int(seg.Redundancy.RequiredShares)) for currentLimitIndex, limit := range getOrderLimits { if limit == nil { diff --git a/testsuite/storjscan/go.mod b/testsuite/storjscan/go.mod index ae237502f..e2d3752c6 100644 --- a/testsuite/storjscan/go.mod +++ b/testsuite/storjscan/go.mod @@ -9,7 +9,7 @@ require ( github.com/zeebo/errs v1.3.0 go.uber.org/zap v1.21.0 golang.org/x/sync v0.1.0 - storj.io/common v0.0.0-20230214163549-c8518523a6f0 + storj.io/common v0.0.0-20230221110830-7591b205266e storj.io/private v0.0.0-20230123202745-d3e63b336444 storj.io/storj v1.63.1 storj.io/storjscan v0.0.0-20220926140643-1623c3b391b0 diff --git a/testsuite/storjscan/go.sum b/testsuite/storjscan/go.sum index 7ef01c171..ced1f45d4 100644 --- a/testsuite/storjscan/go.sum +++ b/testsuite/storjscan/go.sum @@ -1217,8 +1217,8 @@ rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20230214163549-c8518523a6f0 h1:N7St0/39hhmSPtYybP6rrPwvjHrJUHggbFmbRNd0XUc= -storj.io/common v0.0.0-20230214163549-c8518523a6f0/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= +storj.io/common v0.0.0-20230221110830-7591b205266e h1:DG9G8OpdSXDOY6ACaevayS2r7nf5flqyxrZtD00sBlQ= +storj.io/common v0.0.0-20230221110830-7591b205266e/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a h1:FBaOc8c5efmW3tmPsiGy07USMkOSu/tyYCZpu2ro0y8= storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= diff --git a/testsuite/ui/go.mod b/testsuite/ui/go.mod index f94da1dae..837a4b15e 100644 --- a/testsuite/ui/go.mod +++ b/testsuite/ui/go.mod @@ -10,7 +10,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.8.0 go.uber.org/zap v1.23.0 - storj.io/common v0.0.0-20230214163549-c8518523a6f0 + storj.io/common v0.0.0-20230221110830-7591b205266e storj.io/gateway-mt v1.46.0 storj.io/private v0.0.0-20230123202745-d3e63b336444 storj.io/storj v0.12.1-0.20221125175451-ef4b564b82f7 diff --git a/testsuite/ui/go.sum b/testsuite/ui/go.sum index 033914591..503a4d354 100644 --- a/testsuite/ui/go.sum +++ b/testsuite/ui/go.sum @@ -1921,8 +1921,8 @@ sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1 sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20230214163549-c8518523a6f0 h1:N7St0/39hhmSPtYybP6rrPwvjHrJUHggbFmbRNd0XUc= -storj.io/common v0.0.0-20230214163549-c8518523a6f0/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= +storj.io/common v0.0.0-20230221110830-7591b205266e h1:DG9G8OpdSXDOY6ACaevayS2r7nf5flqyxrZtD00sBlQ= +storj.io/common v0.0.0-20230221110830-7591b205266e/go.mod h1:tDgoLthBVcrTPEokBgPdjrn39p/gyNx06j6ehhTSiUg= storj.io/dotworld v0.0.0-20210324183515-0d11aeccd840 h1:oqMwoF6vaOrCe92SKRyr8cc2WSjLYAd8fjpAHA7rNqY= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= storj.io/drpc v0.0.33-0.20230204035225-c9649dee8f2a h1:FBaOc8c5efmW3tmPsiGy07USMkOSu/tyYCZpu2ro0y8=