Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Economic model in Inner-Ring is not able to process 3000+ containers #2173

Closed
vdomnich-yadro opened this issue Dec 22, 2022 · 2 comments
Closed
Assignees
Labels
bug Something isn't working
Milestone

Comments

@vdomnich-yadro
Copy link
Contributor

If neoFS network contains 3000 containers or more, function ListContainerSizes fails with error:

contract execution finished with state FAULT; exception: at instruction 4249 (LDLOC6): stack is too big

This function is used by economic model in Inner-Ring. The error means that economic model will stop working when neoFS network grows to the size of about 3000 containers.

Possible Solution

If we switch to function IterateContainerSizes it will be possible to run economic model with arbitrary container size.

Regression

No

Your Environment

neofs-ir --version
Version: v0.34.0-113-g45c64dbe-dirty 
GoVersion: go1.18.4
@roman-khimov
Copy link
Member

It stops around 2048 in fact, an iterator is needed here and for the List(owner []byte) [][]byte as well (I'm not sure where it's used now, but the problem would be the same).

@roman-khimov
Copy link
Member

Can be fixed with contracts 0.17.0 including nspcc-dev/neofs-contract#293 fix.

@roman-khimov roman-khimov added this to the v0.37.0 milestone Mar 22, 2023
@roman-khimov roman-khimov added bug Something isn't working and removed triage labels Mar 22, 2023
@roman-khimov roman-khimov modified the milestones: v0.37.0, v0.38.0 Jun 5, 2023
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 21, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 21, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 22, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 25, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 25, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 30, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 30, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
carpawell added a commit to carpawell/neofs-node that referenced this issue Aug 30, 2023
Use `iterateAllContainerSizes` instead of `listContainerSizes` +
`getContainerSize` pair. Key-value pair contains enough information for
estimations proceeding.
Closes nspcc-dev#2173.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants