-
Notifications
You must be signed in to change notification settings - Fork 50
Open
Labels
I3Minimal impactMinimal impactS3Minimally significantMinimally significantU4Nothing urgentNothing urgentbugSomething isn't workingSomething isn't workingneofs-storageStorage node application issuesStorage node application issues
Milestone
Description
When an unpaid container is dropped (from SN's storage, not from the whole network) no SN is going to update load reports with zero values (but the container still exists), so no new object can be accepted even if balance > 0.
Expected Behavior
- You have not enough balance, you lose your data.
- You store zero bytes, but you have positive balace still, you should be able to start your NeoFS life from scratch.
- You are able to store objects and pay for them again.
Current Behavior
Very likely, SNs stop reporting values after no container info is found in metabase:
neofs-node/pkg/local_object_storage/metabase/containers.go
Lines 189 to 194 in a4005c9
| // Estimations | |
| bktEstimations := tx.Bucket(containerVolumeBucketName) | |
| err := bktEstimations.DeleteBucket(cIDRaw) | |
| if err != nil && !errors.Is(err, bolterrors.ErrBucketNotFound) { | |
| return fmt.Errorf("estimations bucket cleanup: %w", err) | |
| } |
Possible Solution
Have two versions of DeleteContainer (bool flag maybe): one is for complete container removal (event from FS chain), and one for data cleanup only.
Steps to Reproduce (for bugs)
- Store objects
- Remember its reports
- Stop paying for the container
- Wait for next epoch, and look at load reports
Context
Regression
No
Your Environment
v0.50.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
I3Minimal impactMinimal impactS3Minimally significantMinimally significantU4Nothing urgentNothing urgentbugSomething isn't workingSomething isn't workingneofs-storageStorage node application issuesStorage node application issues