gno icon indicating copy to clipboard operation
gno copied to clipboard

fix(benchops): avoid panic by supporting recursive store timing

Open aeddi opened this issue 4 weeks ago • 2 comments

Benchops has been broken since we fixed a gnovm issue in https://github.com/gnolang/gno/pull/4376. That change (https://github.com/ltzmaxwell/gno/blob/9aea6d5a7117ac775d5d2fb22decb44733d93e72/gnovm/pkg/gnolang/store.go#L492-L495) caused loadObjectSafe() function to call itself recursively: loadObjectSafe -> fillPackage -> GetBlock -> GetObject -> GetObjectSafe -> loadObjectSafe. Since benchops storage did not support recursive calls, the tool was panicking.

This PR:

  • Fixes the panic by adding support for recursive store calls in benchops storage. https://github.com/gnolang/gno/commit/9372dc35015e743b505caa6e2d109f9af0ace3fd
  • Adds a GitHub Actions workflow that runs benchops on every PR to prevent future regressions and upload results as artifacts. https://github.com/gnolang/gno/commit/ee7d735d307f7059c8f4450039cb2286d2d9360d
  • Applies minor documentation fixes. https://github.com/gnolang/gno/commit/28a4240fef000e0faf143bc2a9b38ff49908192e https://github.com/gnolang/gno/commit/9f96bd4960180f27ede3f947b262e873d0a08488

aeddi avatar Nov 27 '25 17:11 aeddi

🛠 PR Checks Summary

🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff

Manual Checks (for Reviewers):
  • [ ] IGNORE the bot requirements for this PR (force green CI check)
Read More

🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.

✅ Automated Checks (for Contributors):

🟢 Maintainers must be able to edit this pull request (more info) 🔴 Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff

☑️ Contributor Actions:
  1. Fix any issues flagged by automated checks.
  2. Follow the Contributor Checklist to ensure your PR is ready for review.
    • Add new tests, or document why they are unnecessary.
    • Provide clear examples/screenshots, if necessary.
    • Update documentation, if required.
    • Ensure no breaking changes, or include BREAKING CHANGE notes.
    • Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
  1. Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Automated Checks
Maintainers must be able to edit this pull request (more info)

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 The pull request was created from a fork (head branch repo: aeddi/gno)

Then

🟢 Requirement satisfied
└── 🟢 Maintainer can modify this pull request

Changes to 'docs' folder must be reviewed/authored by at least one devrel and one tech-staff

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 A changed file matches this pattern: ^docs/ (filename: docs/builders/deploy-packages.md)

Then

🔴 Requirement not satisfied
└── 🔴 And
    ├── 🟢 Or
    │   ├── 🟢 Pull request author is a member of the team: tech-staff
    │   └── 🔴 At least 1 user(s) of the team tech-staff reviewed pull request(with state "APPROVED")
    └── 🔴 Or
        ├── 🔴 Pull request author is a member of the team: devrels
        └── 🔴 At least 1 user(s) of the team devrels reviewed pull request(with state "APPROVED")

Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)

If

🟢 Condition met
└── 🟢 On every pull request

Can be checked by

  • Any user with comment edit permission

Gno2D2 avatar Nov 27 '25 17:11 Gno2D2

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests.

:loudspeaker: Thoughts on this report? Let us know!

codecov[bot] avatar Nov 27 '25 17:11 codecov[bot]