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 141
    • Merge requests 141
  • 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
  • !672

Merged
Created May 16, 2018 by Nicolas Wavrant@NicolasMaintainer

Fix activity retry settings for erp5_interface_post emails

  • Overview 20
  • Commits 4
  • Changes 6

In production, the sending of emails by using Internet Message Posts created activity failures :

Node: activities-XX
Failures: 1
User name: 'System Processes'
Uid: 1234567890
Document: /erp5/person_module/XXXX
Method: Entity_sendEmail
Arguments: ()
Named Parameters: {'cc_url': None, 'from_url': None, 'event_relative_url': 'event_module/YYYY'}

Exception:
  Module Products.CMFActivity.Activity.SQLBase, line 607, in dequeueMessage
    transaction.commit()
  Module transaction._manager, line 123, in commit
    return self.get().commit()
  Module transaction._transaction, line 280, in commit
    reraise(t, v, tb)
  Module transaction._transaction, line 271, in commit
    self._commitResources()
  Module Products.TIDStorage.transaction_transaction, line 261, in _commitResources
    result = original__commitResources(self, *args, **kw)
  Module transaction._transaction, line 416, in _commitResources
    reraise(t, v, tb)
  Module transaction._transaction, line 393, in _commitResources
    rm.tpc_vote(self)
  Module ZODB.Connection, line 797, in tpc_vote
    s = vote(transaction)
  Module ZEO.ClientStorage, line 1072, in tpc_vote
    return self._check_serials()
  Module ZEO.ClientStorage, line 902, in _check_serials
    raise s
ReadConflictError: database read conflict error (oid 0x12345 serial this txn started with 0x12345 2018-05-16 06:27:17.471887, serial currently committed 0x12345 2018-05-16 06:53:10.977183)

This Merge Request proposes to allow Entity_sendEmail to be retried in case of ConflictError, as now Entity_sendEmail is doing more than what it used to be.

For this, we need to isolate the call to sendMailHostMessage to make sur that email won't be sent several times if the activity "Entity_sendEmail" is retried.

We also make sure that the activity created to send a message through MailHost gets the correct parameters to be never retried (retry_max=0 and retry_conflict=False)

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