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

[FW][FIX] Evaluator: Prevent incorrect invalidations #4126

Closed

Conversation

fw-bot
Copy link
Collaborator

@fw-bot fw-bot commented Apr 24, 2024

Description:

This commit solves an issue with the invalidation process of spreaded
formulas. While marking the positions invalidated by a given position,
we would mistakenly mark the latter to be recomputed as well,
effectively creating an infinite loop (position is invalid > invalidate
its dependencies > position is invalidated > etc ...).

This issue was introduced by a bugfix in #3125
and was not discovered as the infinite loop is actually stopped by our
maximum iteration limit.

Avoiding these useless iterations implies a performance improvement of a
factor 30 when reevaluating a spreaded formula.

Co-authored-by: Lucas Lefèvre lul@odoo.com

Task: 3883954

  • feature is organized in plugin, or UI components
  • support of duplicate sheet (deep copy)
  • in model/core: ranges are Range object, and can be adapted (adaptRanges)
  • in model/UI: ranges are strings (to show the user)
  • undo-able commands (uses this.history.update)
  • multiuser-able commands (has inverse commands and transformations where needed)
  • new/updated/removed commands are documented
  • exportable in excel
  • translations (_t("qmsdf %s", abc))
  • unit tested
  • clean commented code
  • track breaking changes
  • doc is rebuild (npm run doc)
  • status is correct in Odoo

Forward-Port-Of: #4106

@robodoo
Copy link
Collaborator

robodoo commented Apr 24, 2024

@fw-bot
Copy link
Collaborator Author

fw-bot commented Apr 24, 2024

This PR targets 17.0 and is part of the forward-port chain. Further PRs will be created up to master.

More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port

@fw-bot
Copy link
Collaborator Author

fw-bot commented Apr 24, 2024

@rrahir @LucasLefevre ci/runbot failed on this forward-port PR

This commit solves an issue with the invalidation process of spreaded
formulas. While marking the positions invalidated by a given position,
we would mistakenly mark the latter to be recomputed as well,
effectively creating an infinite loop (position is invalid > invalidate
its dependencies > position is invalidated > etc ...).

This issue was introduced by a bugfix in #3125
and was not discovered as the infinite loop is actually stopped by our
maximum iteration limit.

Avoiding these useless iterations implies a performance improvement of a
factor 30 when reevaluating a spreaded formula.

Task: 3883954
X-original-commit: d68f37d
Co-authored-by: Lucas Lefèvre <lul@odoo.com>
@rrahir rrahir force-pushed the 17.0-saas-16.4-fix-spread-self-invalidation-rar-sK5v-fw branch from de5c105 to 09aaed1 Compare April 24, 2024 13:40
@fw-bot
Copy link
Collaborator Author

fw-bot commented Apr 24, 2024

@rrahir @LucasLefevre this PR was modified / updated and has become a normal PR. It should be merged the normal way (via @robodoo)

@rrahir
Copy link
Collaborator

rrahir commented Apr 24, 2024

@robodoo r+

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

Successfully merging this pull request may close these issues.

None yet

3 participants