1. 17 Jun, 2011 4 commits
  2. 15 Jun, 2011 1 commit
  3. 14 Jun, 2011 1 commit
  4. 10 Jun, 2011 4 commits
  5. 09 Jun, 2011 1 commit
  6. 08 Jun, 2011 2 commits
    • Michael Hanselmann's avatar
      Fix locking issues in LUClusterVerifyGroup · fceb01fe
      Michael Hanselmann authored
      - Use functions in ConfigWriter instead of custom loops
      - Calculate nodes only once instances locks are acquired, removes one
        potential race condition
      - Don't retrieve lists of all node/instance information without locks
      - Additionally move the end of the node time check window after the
        first RPC call--the second call isn't involved in checking the
        node time at all
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
    • Michael Hanselmann's avatar
      cmdlib: Acquire BGL for LUClusterVerifyConfig · c5312a10
      Michael Hanselmann authored
      LUClusterVerifyConfig verifies a number of configuration settings. For
      doing so, it needs a consistent list of nodes, groups and instances. So
      far no locks were acquired at all (except for the BGL in shared mode).
      This is a race condition (e.g. if a node group is added in parallel) and
      can be fixed by acquiring the BGL in exclusive mode. Since this LU
      verifies the cluster-wide configuration, doing so instead of acquiring
      individual locks is just.
      Includes one typo fix and one docstring update.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarRené Nussbaumer <rn@google.com>
  7. 07 Jun, 2011 2 commits
  8. 03 Jun, 2011 1 commit
  9. 01 Jun, 2011 10 commits
  10. 31 May, 2011 11 commits
  11. 30 May, 2011 3 commits
    • Michael Hanselmann's avatar
      gnt-node migrate: Use LU-generated jobs · b7a1c816
      Michael Hanselmann authored
      Until now LUNodeMigrate used multiple tasklets to evacuate all primary
      instances on a node. In some cases it would acquire all node locks,
      which isn't good on big clusters. With upcoming improvements to the LUs
      for instance failover and migration, switching to separate jobs looks
      like a better option. This patch changes LUNodeMigrate to use
      LU-generated jobs.
      While working on this patch, I identified a race condition in
      LUNodeMigrate.ExpandNames. A node's instances were retrieved without a
      lock and no verification was done.
      For RAPI, a new feature string is added and can be used to detect
      clusters which support more parameters for node migration. The client
      is updated.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
    • Apollon Oikonomopoulos's avatar
      Fix argument order in ReserveLV and ReserveMAC · 8785b71b
      Apollon Oikonomopoulos authored
      ConfigWriter.ReserveLV() and Configwriter.ReserveMAC() called
      TemporaryReservationManager.Reserve() with the ec_id and resource arguments
      swapped. As a result, two reservation attempts for the same resource type
      within the same LU would fail, even if the resources requested were different,
        $ gnt-instance add -t sharedfile -o debootstrap+default \
             --net 0:mac=00:01:02:03:04:00 \
             --net 1:mac=00:01:02:03:04:ff \
             --disk 0:size=2g  test_instance
        Failure: prerequisites not met for this operation:
        error type: resource_not_unique, error details:
        MAC address 00:01:02:03:04:ff already in use in cluster
      This patch fixes the argument order in the call to Reserve().
      Signed-off-by: default avatarApollon Oikonomopoulos <apollon@noc.grnet.gr>
      Signed-off-by: default avatarGuido Trotter <ultrotter@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
    • Michael Hanselmann's avatar
      ht: Accept both int and long as integers · b99b607f
      Michael Hanselmann authored
      This fixes a unittest failure on 32 bit systems. A recently added
      unittest for ht.TJobId uses a rather large number (2347625220). On 64
      bit systems it is stored as “int”. On 32 bit systems however, Python
      uses “long”. The two types can be intermixed in Python as the
      interpreter will take care of conversions. If one processed too many
      jobs (2**31) on a 32 bit system, ht would no longer accept the job IDs.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>