Previously, guest agent information vanished after virtual machines were migrated several times. This was because the virtual machine channel listener was not handling any errors. If an error occurred, VDSM did not try to reconnect and the connection to the guest was lost for the lifetime of the guest or until VDSM was restarted.
A patch to VDSM introduces a mechanism to reconnect to the
channel. When an error occurs, the setup callback is called, which gives the handled client a chance to recreate the socket and prepare it for a connect.
After that callback is called, the erroneous connection is moved into the unconnected items dict where it will be handled by the event loop.
If there have been 5 or more unsuccessful attempts made the reconnect rate will be slowed down to the same time as specified for the 'read timeout'.
The items which are slowed down are moved into the 'reconnect_cooldown' dict.
After this patch is applied, guest agent information does not vanish after several virtual machine migrations.