Skip to content
Snippets Groups Projects
  1. Jul 23, 2013
  2. Jun 19, 2013
  3. Jun 17, 2013
    • Dimitris Aragiorgis's avatar
      Make NIC setup more flexible in case of Xen · c07f38e1
      Dimitris Aragiorgis authored
      
      For every NIC write down a file that contains NIC's
      info (MAC, mode, link, network details), that can
      be sourced by any vif script.  The file location is:
      /var/run/ganeti/xen-hypervisor/nic/<domname>/<nicidx>.
      
      This file is created upon cfg file creation and before
      starting the instance and can be sourced by an external
      script.
      
      Cleanup NIC dir when removing config files. Upon Xen
      configuration file removal, remove NIC dir as well.
      
      Add new hv param vif_script that allows execution of
      user defined networking script and overrides the one
      xend is configured with in xend-config.sxp
      
      Ensure that all run dirs exist for Xen hypervisor
      
      Xen hypervisor uses runtime files to store each NIC's related info.
      We need to check if parent dirs exist as well.
      
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      Signed-off-by: default avatarThomas Thrainer <thomasth@google.com>
      c07f38e1
  4. Feb 20, 2013
  5. Jan 14, 2013
  6. Jan 11, 2013
  7. Jan 09, 2013
  8. Jan 08, 2013
    • Dimitris Aragiorgis's avatar
      Add machine version in kvm runtime file · fdbc5d2f
      Dimitris Aragiorgis authored
      
      kvm -M ? returns the supported machines (e.g. pc-1.1).
      Add _GetDefaultMachineVersion() function to get the default value.
      
      Upon kvm runtime file creation (this is in _GenerateKVMRuntime() invoked
      only in StartInstance()) append this info in kvm_cmd. During
      live migration the -incoming kvm process is started based on this file.
      
      In case of different KVM versions between source and target nodes
      there is a possibility (e.g. due to a kvm bug) for migration to fail silently.
      
      This patch forces the target node to emulate the same machine version
      used by running process. If KVM on target node does not support it
      the -incoming kvm process will crash and migration will be aborted.
      
      Signed-off-by: default avatarDimitris Aragiorgis <dimara@grnet.gr>
      fdbc5d2f
  9. Dec 22, 2012
  10. Dec 20, 2012
  11. Dec 19, 2012
    • Iustin Pop's avatar
      Fix job completion with big job queues · e0f470ac
      Iustin Pop authored
      
      Accidentally stumbled upon this while testing unrelated code on a
      machine with ~3K active jobs - the bash completion unittest was
      hanging.
      
      Upon investigation, it turns out that bash's ${var//pattern/repl/} is
      probably quadratic in the size of input (or worse, even):
      
        $ touch job-{1..500}
        $ time ( a=$(echo job-*); echo ${a//job-/}| wc -c; )
        1892
      
        real    0m0.597s
        user    0m0.590s
      
        $ touch job-{1..1000}
        $ time ( a=$(echo job-*); echo ${a//job-/}| wc -c; )
        3893
      
        real    0m4.654s
        user    0m4.580s
      
      We can easily fix this if we change to array-based substitution (once
      per element):
      
        $ time ( a=($(echo job-*)); echo ${a[*]/job-/} |wc -c; )
        3893
      
        real    0m0.028s
        user    0m0.010s
      
        $ touch job-{1..10000}
        $ time ( a=($(echo job-*)); echo ${a[*]/job-/} |wc -c; )
        48894
      
        real    0m0.233s
        user    0m0.220s
      
      This means that exactly when the master node is busy processing many
      jobs, we could accidentally start consuming lots of CPU in the bash
      completion, which is not good.
      
      Note: the code might have problems with filenames containing spaces (I
      didn't reset the IFS, etc.), but the original code had the same issue,
      I think.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      e0f470ac
  12. Dec 14, 2012
  13. Dec 13, 2012
  14. Dec 12, 2012
  15. Nov 30, 2012
  16. Nov 27, 2012
  17. Nov 26, 2012
  18. Nov 22, 2012
  19. Nov 19, 2012
    • Iustin Pop's avatar
      Fix opcode validation for OpOobCommand.command · 70296981
      Iustin Pop authored
      
      The 'command' attribute of the OpOobCommand command is defined with a
      default value of None, but its validation requires a member of
      constants.OOB_COMMANDS, which doesn't accept None. This result in the
      following error when submitting an opcode without the command:
      
        error type: wrong_input, error details:
        Parameter 'OP_OOB_COMMAND.command' fails validation
      
      I suspect this was simply a mistake, since the commit that introduced
      it (65e183af, “opcodes: Add opcode parameter definitions”) did lots of
      bulk updates.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
      70296981
  20. Nov 15, 2012
  21. Nov 14, 2012
  22. Nov 12, 2012
    • Iustin Pop's avatar
      Improve error message when migration status fail · 4041a4e3
      Iustin Pop authored
      
      Commit 6a1434d7 (“Make migration RPC non-blocking”) changed the API
      for reporting migration status, but has a small cosmetic bug: if the
      migration status if failure, but the RPC itself to get the status
      didn't fail, it shows the following error message:
      
        Could not migrate instance instance2: None
      
      since it always uses result.fail_msg, irrespective of which part of
      the if condition failed.
      
      This patch simply updates the msg if not already set, leading to:
      
        Could not migrate instance instance2: hypervisor returned failure
      
      Proper error display can be done once the migration status objects can
      return failure information as well, beside status.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
      4041a4e3
    • Iustin Pop's avatar
      Fix type error in kvm/GetMigrationStatus · 62457f51
      Iustin Pop authored
      
      Commit 6a1434d7 (“Make migration RPC non-blocking”) changed from
      raising HypervisorErrors to returning MigrationStatus
      objects. However, these objects don't have an "info" attribute, so
      they can't pass a reason back (which is in itself a bug); but the KVM
      hypervisor code attempts to do so, and fails at runtime with:
      
        Failed to get migration status: 'MigrationStatus' object has no attribute 'info'
      
      instead of the intended:
      
        Migration failed, aborting: too many broken 'info migrate' answers
      
      For now (on stable-2.6), let's just remove the "info" reason, and
      later we can add it back properly once we have a way to correctly
      represent migration status failures in the LU.
      
      This fixes issue 297.
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      62457f51
    • Iustin Pop's avatar
      Fix PID file writing in Haskell daemons · a4c0fe1e
      Iustin Pop authored
      
      Currently, the code uses createFile, which has the effect of always
      truncating the file. This is bad, as the content of the PID file is
      wiped even when we wouldn't be able to lock it!
      
      We switch to openFd (createFile is just a wrapper over that), and we
      use an explicit set of flags; defaultFileFlags is already safe
      (trunc=False), but I prefer to set it explicitly with our desired
      flags.
      
      Note that this bug doesn't manifest in normal usage, as daemon-util
      won't try to start the daemon if already running. But if anyone or
      anything does call ganeti-confd explicitly, the pid file will be
      emptied and the daemon will keep trying to be restarted forever…
      
      Signed-off-by: default avatarIustin Pop <iustin@google.com>
      Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
      a4c0fe1e
  23. Nov 08, 2012
Loading