Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
erp5 erp5
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Labels
    • Labels
  • Merge requests 136
    • Merge requests 136
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • nexedi
  • erp5erp5
  • Merge requests
  • !1880

Merged
Created Feb 21, 2024 by Nicolas Wavrant@NicolasMaintainer

CMFActivity: do not bypass the max_retry parameter for activities that timeout

  • Overview 3
  • Commits 1
  • Changes 2

I investigated a case where activities calling an external API were not retried after the initial failure, when it was caused by TimeoutReachedError:

https://lab.nexedi.com/nexedi/erp5/-/blob/f41b33cd91348a800db3b95b30efd857f583bcde/bt5/erp5_web_service/MixinTemplateItem/portal_components/mixin.erp5.RESTAPIClientConnectorMixin.py#L142

The interesting thing is that these activities are written in a way that allow them to be retried (automatically, or manually) without causing un-intended side effects, like creating twice a document in the external API. So not having SQLBase retrying them automatically is a pity.

The bug is that the use of TimeoutReachedError here was intended only for the activities that are aborted by CMFActivity itself, and not for the userland code that can also use TimeoutReachedError.

This commit removes this special processing, as there is no need to especially not retry the activities that trigger the CMFActivity timeout. The max_retry decision should be taken by the calling code, and not by CMFActivity.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Source branch: cmfactivity-timeout-fix
GitLab Nexedi Edition | About GitLab | About Nexedi | 沪ICP备2021021310号-2 | 沪ICP备2021021310号-7