Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
COmanage Registry 4.4.0 (Sparkling Summit)
Description
The syncOrgIdentitySource() function in OrgIdentitySource.php has two primary loops:
- A loop over existing existing records with a call to syncOrgIdentity() on each
- A loop over non-existent records that are in the upstream SOR with a call to createOrgIdentity() on each to create a new record.
During each iteration of those loops, it is currently possible (but not correct) that a transaction will be left open. This is seen to be the case even for OIS plugins where the backend does NOT itself manage transactions.
When the transaction is left open, subsequent iterations through those loops result in records that are never committed, including the related OrgIDs and (if a Pipeline is configured) CO Person records, along with all related models. As such it is possible for a CoreJob.Sync job to exit after running for many hours and doing the work to manage 1000s of upstream records without any actual new records being created in Registry.
The difficult part is trying to determine which/where the open transactions are being created.
Attachments
Issue Links
- is related to
-
CO-2829 ChangelogBehavior Leaves Transaction Open on Failed Save
-
- In Progress
-