[libvirt] error: internal error canonical hostname pointed to localhost, but this is not allowed

Chris Lalancette clalance at redhat.com
Wed Mar 24 13:36:11 UTC 2010

On 03/23/2010 11:00 AM, Kenneth Nagin wrote:
> Changing qemudDomainMigratePrepare2 call  to virGetHostnameLocalhost
> from: if ((hostname = virGetHostnameLocalhost(0)) == NULL)
> to: if ((hostname = virGetHostnameLocalhost(1)) == NULL)
> seems to fix the problem.
> But maybe this is only masking a another problem.

Yeah, you are masking another problem.  The problem is that this portion
of migration is running on the destination of the migration, and generating
a string that the source of the migration will use to perform the migration.
By passing the 1 flag to virGetHostnameLocalhost, you are allowing it to
return "localhost" as the string.  This means that when the source tries
to migrate, it will actually try to migrate to "localhost", not the
destination, and fail in complicated-to-debug ways.

The actual problem you have is that the "hostname" command on your
machine is returning a string that resolves to localhost, probably because of
a misconfiguration in /etc/hosts.

Chris Lalancette

More information about the libvir-list mailing list