• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • 2.6 rc1, 2.6
    • 2.6 M6
    • Builds
    • None

      Some Background
      This issue is for deadlocks in a specific code path - BuildNumber generation.

      Problems:
      1. We unnecessary create 2 transactions one when DefaultPlanManager.generateBuildNumber is called and then another one within the first transaction when PlanHibernateDao.generateBuildNumberNewTx. In situation when many threads enter the first transaction and wait for the connection for the second(inner) transaction we get a deadlock.
      2. To ensure the uniqueness of build number we need to use synchronization inside java code. However right now we synchronize from within transaction which is wrong. It can lead to the situation when one thread changed value and exited the synchronized block however has not yet committed the value. Another thread that entered the synchronized block will see a stale value.

              akazatchkov Anatoli
              akazatchkov Anatoli
              Affected customers:
              0 This affects my team
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: