Uploaded image for project: 'COmanage'
  1. COmanage
  2. CO-2881

syncOrgIdentitySource manage open transactions

    XMLWordPrintable

Details

    Description

      The syncOrgIdentitySource() function in OrgIdentitySource.php has two primary loops:

      1. A loop over existing existing records with a call to syncOrgIdentity() on each
      2. 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

          Activity

            People

              benn.oshrin@at.internet2.edu Benn Oshrin
              scott.koranda@at.internet2.edu Scott Koranda
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: