Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-1299

Set transaction isolation level to read committed

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 2.3.1, 2.3.0.patch
    • None
    • None

    Description

      The reason why the problem happens in MySQL and not Oracle is because Oracle defaults to a lower isolation level (read committed). MySQL on the other hand defaults to repeatable read. If I force MySQL to use read committed, then the GrouperLoaderTest test succeeds.

      So the problem is that you have two threads adding two memberships at the same time (with the same member) and the member object doesn't exist beforehand. Two transactions are created in parallel (basically). The first transaction creates the member object in its transaction and commits. The second transaction will find the member object because it will search for it in a new transaction. But then later, it's not able to find it again when it uses it's own transaction because of the isolation level.

      This could lead to bad composite memberships.

      Attachments

        Activity

          People

            shilen.patel@at.internet2.edu Shilen Patel (duke.edu)
            shilen.patel@at.internet2.edu Shilen Patel (duke.edu)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Smart Checklist