Skip to content

Fix/incorrect TS metabase resync#3483

Closed
carpawell wants to merge 3 commits intomasterfrom
fix/incorrect-TS-placement
Closed

Fix/incorrect TS metabase resync#3483
carpawell wants to merge 3 commits intomasterfrom
fix/incorrect-TS-placement

Conversation

@carpawell
Copy link
Member

No description provided.

Refs #3436.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
@codecov
Copy link

codecov bot commented Jul 25, 2025

Codecov Report

❌ Patch coverage is 16.66667% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 23.13%. Comparing base (ba3431d) to head (a6020d6).
⚠️ Report is 2 commits behind head on master.

Files with missing lines Patch % Lines
pkg/local_object_storage/metabase/util.go 0.00% 1 Missing and 1 partial ⚠️
pkg/services/object/delete/exec.go 0.00% 2 Missing ⚠️
pkg/local_object_storage/shard/control.go 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3483      +/-   ##
==========================================
- Coverage   23.15%   23.13%   -0.02%     
==========================================
  Files         669      669              
  Lines       50251    50252       +1     
==========================================
- Hits        11634    11628       -6     
- Misses      37708    37713       +5     
- Partials      909      911       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@roman-khimov roman-khimov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelog?


garbageObjectsBKT := tx.Bucket(garbageObjectsBucketName)
err = garbageObjectsBKT.Put(target[:], zeroValue)
err = garbageObjectsBKT.Put(addressKey(oid.NewAddress(cID, target), make([]byte, addressKeySize)), zeroValue)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, it's not just resync?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

current state: lock object cannot be removed by gc because of incorrect gc bucket internals -> expired lock object was not removed from blobstor -> it was resynced from time to time -> correct TS cannot resync because of stuck LOCK

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BUT, when you created this issue, there was no such code at all, so... it looks like we have repeated the issue. i may expect the original issue to come back

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But looks like this affects every TS object, any deletion is problematic in that it breaks the metabase. If the metabase is broken, who is to repair it?

GC bucket requires full object address.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
@roman-khimov
Copy link
Member

Replaced by #3484.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants