Skip to content

Conversation

@cthulhu-rider
Copy link
Contributor

No description provided.

Regression from 9a49cd0. Before it,
deletion code strongly relied that parent objects go no-op. Then it
started to treat parent objects as physically stored ones. This led to
incorrect metric tracking. In particular, shard counters.

This was reproduced in DevEnv: when split objects expired, metrics
became:
```
neofs_node_object_counter{shard="6pmbXUjzhKuvYnzrkUbeuP",type="logic"} -9
neofs_node_object_counter{shard="6pmbXUjzhKuvYnzrkUbeuP",type="phy"} -9
neofs_node_object_counter{shard="LpCtgJvdezqupmWtbM71rJ",type="logic"} -10
neofs_node_object_counter{shard="LpCtgJvdezqupmWtbM71rJ",type="phy"} -10
neofs_node_engine_payload_size{shard="6pmbXUjzhKuvYnzrkUbeuP"} -1.048743e+06
neofs_node_engine_payload_size{shard="LpCtgJvdezqupmWtbM71rJ"} -1167
```

Refs #3477.

Signed-off-by: Leonard Lyubich <[email protected]>
@codecov
Copy link

codecov bot commented Dec 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 26.87%. Comparing base (af84826) to head (f27ca9f).
⚠️ Report is 15 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3717   +/-   ##
=======================================
  Coverage   26.87%   26.87%           
=======================================
  Files         658      658           
  Lines       41808    41808           
=======================================
  Hits        11235    11235           
+ Misses      29536    29533    -3     
- Partials     1037     1040    +3     

☔ 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.

@cthulhu-rider cthulhu-rider marked this pull request as ready for review December 4, 2025 17:14
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.

An update to counters is required as a part of migration as well. We've done it once, can do it again. We certainly have some expired big objects in mainnet, it's just that it's hard to notice anything in counters given the overall number/size of objects.

if metaBucket != nil {
phyKey := slices.Concat([]byte{metaPrefixIDAttr}, oID[:], []byte(object.FilterPhysical), objectcore.MetaAttributeDelimiter, []byte(binPropMarker))
if metaBucket.Get(phyKey) == nil {
return false, false, 0, nil
Copy link
Member

Choose a reason for hiding this comment

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

I don't think it's correct to leave garbageObjectsBKT entry. Also we we have a notion of available/unavailable objects and I'm not sure we're correctly handling those.

@cthulhu-rider
Copy link
Contributor Author

needs deeper examination

@cthulhu-rider cthulhu-rider marked this pull request as draft December 5, 2025 08:01
@cthulhu-rider cthulhu-rider added bug Something isn't working neofs-storage Storage node application issues labels Dec 5, 2025
@carpawell carpawell mentioned this pull request Dec 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working neofs-storage Storage node application issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants