Forum

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /homepages/13/d467848118/htdocs/templates/cleanout/vertex/responsive/responsive_mobile_menu.php on line 158
Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Failed to update global pool and possible bug 4 years 3 months ago #2092

  • Victor Hugo
  • Victor Hugo's Avatar Topic Author
  • Offline
  • Posts: 21
Hello Masters,

how are you there.

I'm trying to get the razon why my cluster sent this message to me:
update_global_conf_params: Failed to update global pool configuration settings in /etc/ha-lizard/ha-lizard.pool.conf - Check Configuration!

It is random, but usually 3-4 times by day. In the forum, the only topic about this, recommend to increase the xapi-timeout to 15 seconds.
Any other idea where I can look ?? The servers have a load <= 1.1.. so I don't think that is a load problem.

Note: looking the logs and code, I found this code in the file "ha-lizard.func"
634 function validate_vm_home_pool ()
 635 {
 636         if [ ! $2 ]
 637         then
 638                 log $FUNCNAME "validation failed due to missing argument"
 639                 return 1
 640         fi
 641 
 642         local VM_UUID=$1
 643         local THIS_POOL_UUID=$2
 644         local VM_HOME_POOL_UUID=$(xe vm-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY})
 645         $XE pool-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY} &>/dev/null
 646         local PARAM_FOUND=$?
 647         if [ ${PARAM_FOUND} -ne 0 ]
 648         then
 649                 log $FUNCNAME "VM [${VM_UUID}] missing configuration parameter [${HOME_POOL_PARAM_KEY}] - inserting field"
 650                 $XE vm-param-add uuid=${VM_UUID} param-name=other-config ${HOME_POOL_PARAM_KEY}
 651         fi      
 652 

What is the idea of the line 645 there ?? passing the VM_UUID to get information from a pool don't look correct to me !!??

PS: ha-lizard-2.2.3-1.noarch and iscsi-ha-2.2.4-1.noarch

Please Log in or Create an account to join the conversation.

Failed to update global pool and possible bug 4 years 2 months ago #2132

  • Salvatore Costantino
  • Salvatore Costantino's Avatar
  • Offline
  • Posts: 727
The purpose of line 645 is to block a VM from auto starting on a target pool when a VM is live migrated to another pool. When live migrating between pools, the VM will momentarily be in the off state on the target pool during the final stages of the migration. During this critical time, we do not want HA on the target pool to start the VM while the migration completes. So, we track the pool UUID in the VM's parameters. The target pool will perform a validation before attempting to start the VM. If the home pool UUID is not the same as the target pool, it will not start the VM. Once the migration has completed, the VM's home pool parameter will be updated with the UUID of the target pool. In sum, it acts as a lock to prevent HA from interfering with the inter-pool migration.

Regarding your first question about "update_global_conf_params: Failed to update global pool configuration settings". This error will be triggered if XAPI fails to respond within 3 seconds when updating the pool parameters. Pool parameters are updated ~ every 15 seconds. Its impossible to tell why the timeout occurred. Usually this can happen when the system is under load.

Hope this answers your question.

Please Log in or Create an account to join the conversation.

Failed to update global pool and possible bug 4 years 2 months ago #2138

  • Victor Hugo
  • Victor Hugo's Avatar Topic Author
  • Offline
  • Posts: 21
Hi Salvatore and how are you there man ??

Well, the idea I understood well, but this line never will work
$XE pool-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY} &>/dev/null
because you can't pass a VM_UUID value to a pool UUID parameter, you always get an error there in this case.

Maybe your idea is to use the same command of the line 644 (using VM-param-get and not POOL-param-get) ??
In this case the line 645 should look like this.
 645         $XE vm-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY} &>/dev/null

In this case you can improve the code deleting the double check and only validating if the variable VM_HOME_POOL_UUID have been asignate before or not (in the line 644). For example:
642         local VM_UUID=$1
643         local THIS_POOL_UUID=$2
644         local VM_HOME_POOL_UUID=$(xe vm-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY})
645   #      $XE pool-param-get uuid=${VM_UUID} param-name=other-config param-key=${HOME_POOL_PARAM_KEY} &>/dev/null
646   #      local PARAM_FOUND=$?
647   #      if [ ${PARAM_FOUND} -ne 0 ] 
645         if [ -z "$VM_HOME_POOL_UUID" ]
648         then
649                 log $FUNCNAME "VM [${VM_UUID}] missing configuration parameter [${HOME_POOL_PARAM_KEY}] - inserting field"
650                 $XE vm-param-add uuid=${VM_UUID} param-name=other-config ${HOME_POOL_PARAM_KEY}
651         fi          

thanks again for your super job here man.

Please Log in or Create an account to join the conversation.

Last edit: by Victor Hugo.

Failed to update global pool and possible bug 4 years 2 months ago #2210

  • Salvatore Costantino
  • Salvatore Costantino's Avatar
  • Offline
  • Posts: 727
HI Victor,
Excuse the delay. I am just getting around to this now while working on some other small bugs.

You are correct, that line of code will never work. VM_UUID should really be POOL_UUID. The validation is there to check whether the parameter exists in the DB, which does not work.

Nice catch and thank you for bringing it to my attention.
The following user(s) said Thank You: Victor Hugo

Please Log in or Create an account to join the conversation.

Failed to update global pool and possible bug 4 years 2 months ago #2212

  • Victor Hugo
  • Victor Hugo's Avatar Topic Author
  • Offline
  • Posts: 21
Salvatore,

I have tried to sent a direct message to you, but, look like the forum don't allow.

One question: Why don't put the source code in a repository ??
In this case, should be much more easy to check the code and sent a patch (if we found) to you.

PS: if you need some help, write to me and will be happy to get a hand.

Please Log in or Create an account to join the conversation.

  • Page:
  • 1