← Back to team overview

openstack team mailing list archive

Re: VM can't ping self floating IP after a snapshot is taken

 

I ran into some similar issues with the _enable_hairpin() call. The call is allowed to fail silently and (in my case) was failing. I couldn't for the life of me figure out why, though, and since I'm really not a networking person I didn't trace it along too far.

Just thought I'd share my similar pain.


-          Gabriel

From: openstack-bounces+gabriel.hurley=nebula.com@xxxxxxxxxxxxxxxxxxx [mailto:openstack-bounces+gabriel.hurley=nebula.com@xxxxxxxxxxxxxxxxxxx] On Behalf Of Sam Su
Sent: Thursday, July 19, 2012 11:50 AM
To: Brian Haley
Cc: openstack
Subject: Re: [Openstack] VM can't ping self floating IP after a snapshot is taken

Thank you for your support.

I checked the file  nova/virt/libvirt/connection.py, the sentence  self._enable_hairpin(instance) is already added to the function  _hard_reboot().
It looks like there are some difference between taking snapshot and reboot instance. I tried to figure out how to fix this bug but failed.

It will be much appreciated if anyone can give some hints.

Thanks,
Sam

On Thu, Jul 19, 2012 at 8:37 AM, Brian Haley <brian.haley@xxxxxx<mailto:brian.haley@xxxxxx>> wrote:
On 07/17/2012 05:56 PM, Sam Su wrote:
> Hi,
>
> Just This always happens in Essex release. After I take a snapshot of my VM ( I
> tried Ubuntu 12.04 or CentOS 5.8), VM can't ping its self floating IP; before I
> take a snapshot though, VM can ping its self floating IP.
>
> This looks closely related to https://bugs.launchpad.net/nova/+bug/933640, but
> still a little different. In 933640, it sounds like VM can't ping its self
> floating IP regardless whether we take a snapshot or not.
>
> Any suggestion to make an easy fix? And what is the root cause of the problem?
It might be because there's a missing _enable_hairpin() call in the reboot()
function.  Try something like this...

nova/virt/libvirt/connection.py, _hard_reboot():

             self._create_new_domain(xml)
+            self._enable_hairpin(instance)
             self.firewall_driver.apply_instance_filter(instance, network_info)

At least that's what I remember doing myself recently when testing after a
reboot, don't know about snapshot.

Folsom has changed enough that something different would need to be done there.

-Brian


Follow ups

References