1. 24 Nov, 2011 2 commits
    • Michael Hanselmann's avatar
      LUGroupAssignNodes: Fix node membership corruption · 54c31fd3
      Michael Hanselmann authored
      Note: This bug only manifests itself in Ganeti 2.5, but since the
      problematic code also exists in 2.4, I decided to fix it there.
      If a node was assigned to a new group using “gnt-group assign-nodes” the
      node object's group would be changed, but not the duplicate member list
      in the group object. The latter is an optimization to require fewer
      locks for other operations. The per-group member list is only kept in
      memory and not written to disk.
      Ganeti 2.5 starts to make use of the data kept in the per-group member
      list and consequently fails when it is out of date. The following
      commands can be used to reproduce the issue in 2.5 (in 2.4 the issue was
      confirmed using additional logging):
        $ gnt-group add foo
        $ gnt-group assign-nodes foo $(gnt-node list --no-header -o name)
        $ gnt-cluster verify  # Fails with KeyError
      This patch moves the code modifying node and group objects into
      “config.ConfigWriter” to do the complete operation under the config
      lock, and also to avoid making use of side-effects of modifying objects
      without calling “ConfigWriter.Update”. A unittest is included.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
      (cherry picked from commit 218f4c3d)
    • Michael Hanselmann's avatar
      Fix pylint warning on unreachable code · 9c4f4dd6
      Michael Hanselmann authored
      Commit c50452c3
       added an exception when all instances should be
      evacuated off a node, but did so in a way which made pylint complain
      about unreachable code.
      Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
      Reviewed-by: default avatarIustin Pop <iustin@google.com>
  2. 23 Nov, 2011 3 commits
  3. 16 Nov, 2011 2 commits
    • Iustin Pop's avatar
      htools: rework message display construction · bdd8c739
      Iustin Pop authored
      While diagnosing some (unrelated) memory usage in htools, I've
      stumbled upon some very bad behaviour in checkData: mapAccum is
      non-strict, and the tuple we use also, so that results in the list of
      list of messages being very bad space-wise (hundreds of MB of memory
      for a simulated cluster with thousands of nodes, all with errors).
      The new, explicit reuse of the old message list has a linear memory
      behaviour. The only downside is that messages are listed in the
      reverse order (which I'll fix on master).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
    • Iustin Pop's avatar
      hbal: handle empty node groups · 2072221f
      Iustin Pop authored
      This patch changes an internal assert (which can only be triggered
      when a node group is empty) into properly handling this case (and
      returning empty node/instance lists).
      While we could handle this in the backend (Cluster.splitNodeGroup)
      this would actually mean than we change the behaviour for a cluster
      with just two node groups, once of which is empty (where today we
      don't require a node group argument).
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
  4. 15 Nov, 2011 1 commit
  5. 08 Nov, 2011 1 commit
  6. 04 Nov, 2011 2 commits
  7. 27 Oct, 2011 5 commits
  8. 26 Oct, 2011 3 commits
  9. 21 Oct, 2011 1 commit
  10. 20 Oct, 2011 1 commit
  11. 19 Oct, 2011 2 commits
  12. 18 Oct, 2011 4 commits
  13. 17 Oct, 2011 1 commit
  14. 12 Oct, 2011 2 commits
  15. 07 Oct, 2011 1 commit
  16. 04 Oct, 2011 2 commits
  17. 03 Oct, 2011 2 commits
  18. 30 Sep, 2011 5 commits