[Users] Ovirt - double use of PCI Address
Oved Ourfalli
ovedo at redhat.com
Wed Jun 6 09:03:28 UTC 2012
----- Original Message -----
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com>
> To: "Oved Ourfalli" <ovedo at redhat.com>
> Cc: users at ovirt.org, "Yair Zaslavsky" <yzaslavs at redhat.com>
> Sent: Wednesday, June 6, 2012 11:24:14 AM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
> Thanks. we should help each other in open source product. I'm trying
> to work with Ovirt everyday and if i find new problem or bug, i'll
> send it to lists.
>
> I didn't define any pool. as default pool is exist?
>
No.
But pool uses snapshots for stateless VMs, and that's where I originally reproduced the problem.
> i make snapshot from my VM and then create new clone based on
> snapshot. then i try to start new vm. it failed with double of pci
> address.then i removed new clone VM. then i try to start old VM
> (that i created snapshot from it) . but i saw it failed too!
>
> then i sent email to this lists and you helped me to solve this
> problem.
>
> thanks.
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Wed, 06 Jun 2012 03:20:16
> -0400 (EDT):
>
> Fix is now merged upstream:
> http://gerrit.ovirt.org/gitweb?p=ovirt-engine.git;a=commit;h=242636a161a1f7ee44bfad2f9a80002b589b685e
> I verified it on my environment, testing both snapshots and pools.
>
> I guess that old VMs you have, that are part of a pool, or were
> restored from snapshots, can be damaged (as not only the monitors
> were duplicated, but all the other devices as well, besides disks).
>
> Thank you for helping us find the problem,
> Oved
>
> ----- Original Message -----
>
> From: "Yair Zaslavsky" <yzaslavs at redhat.com> To: users at ovirt.org Cc:
> "mohsen saeedi" <mohsen.saeedi at gmail.com> , "Oved Ourfalli"
> <oourfali at redhat.com> Sent: Tuesday, June 5, 2012 7:16:12 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
> On 06/05/2012 06:46 PM, Oved Ourfalli wrote:
>
> I think that the problem is related to snapshots.
> I saw that when working with a VM pool, defining some pre-started
> VMs, then when shutting down a VM then all the devices are created
> again, which leads to these duplications.
> Still need to investigate/debug it, on a clean environment, but
> looks like it is the issue.
>
> Oved I would also like to add that maybe its worth to get the XML of
> the
> configuration of the snapshot.
> This information is stored as "text" under the vm_configuration
> column
> of "snapshots" table.
> You will always have an "active" snapshot - this is not the snapshot
> you're interested at, simply query the snapshots table according to
> the
> snapshot description, and you will have the OVF that describes the VM
> when the snapshot was created.
> I wonder if the OVF is correctly kept at the snapshot (just
> suggesting
> another point of investigation)
>
> Yair
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved Ourfalli"
> <ovedo at redhat.com> Cc: users at ovirt.org , "Igor Lvovsky"
> <ilvovsky at redhat.com> Sent: Tuesday, June 5, 2012 6:34:18 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Ok. thanks. I'm trying to do all of the under my home server with
> Ovirt. I'll update you about any problem in this case.
>
>
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Tue, 05 Jun 2012
> 11:20:03
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved
> Ourfalli" <ovedo at redhat.com> Cc: users at ovirt.org , "Igor Lvovsky"
> <ilvovsky at redhat.com> Sent: Tuesday, June 5, 2012 6:10:30 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Hi Again
>
> I just defined new server on Ovirt admin portal. I think define
> monitor is for desktop virtualization. is it true?
>
> I switched more than two time between spice and vnc. do you think
> switching between vnc and spice is the reason for this problem?
> And
> did the problem occur?
> Trying to reproduce it now and I can't, although I seem to have
> some
> VMs with more than one monitor in the vm_device table, but all
> have
> this property set to 1.
> I'll update you in case I understand the reason. If you have a
> solid
> reproduction then please share it.
>
> Thank you,
> Oved
>
> I'm going to delete extra video card. but it's very interesting
> for
> me to know about reason of this problem.
>
>
>
>
> Thanks
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Tue, 05 Jun 2012
> 10:16:07
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved
> Ourfalli" <ovedo at redhat.com> Cc: users at ovirt.org , "Igor Lvovsky"
> <ilvovsky at redhat.com> Sent: Tuesday, June 5, 2012 5:06:55 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Thanks. But i didn't add 3 video card! why there is 3 video
> card?is
> it bug? Basically the number of devices should grow or shrink,
> according to the number of monitors you choose in the VM
> properties.
> If it has more then it is a bug.
> I'll take a look at it.
>
> can you please explain more about how can i fix this problem? i
> must
> go to the database and then i leave the address as is? i don't
> understand last your sentence.
> Thanks for you attention. Thinking of it, if you don't want 3
> devices
> you can just delete two of the three video controllers in order to
> workaround the issue.
> In order to do that you'll have to do the following in the
> database:
> 1. Find the vm_id of your VM. You can do that by looking at the
> vm_static table.
> 2. Then, in the vm_device table, find the video devices.
> 3. Delete two of the three devices.
>
> Let me know if you need more help.
>
> Oved Ourfalli <ovedo at redhat.com> wrote on Tue, 05 Jun 2012
> 10:01:00
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: "Oved
> Ourfalli" <ovedo at redhat.com> Cc: users at ovirt.org Sent: Tuesday, June
> 5, 2012
> 4:42:09 PM
> Subject: Re: [Users] Ovirt - double use of PCI Address
>
>
>
> /*Oved Ourfalli <ovedo at redhat.com> */ wrote on Tue, 05 Jun 2012
> 09:29:19
> -0400 (EDT):
>
> ----- Original Message -----
>
> From: "Mohsen Saeedi" <mohsen.saeedi at gmail.com> To: users at ovirt.org
> Sent: Tuesday, June 5, 2012 4:24:46 PM
> Subject: [Users] Ovirt - double use of PCI Address
>
>
>
>
>
> Hi
>
> I setup ovirt and some other things. I make a virtual machine
> (CentOS
> 6.2). installed and configured it. then power off it and make a
> snapshot and create clone image from it.
>
> when i trying to start new machine, i got this error:
>
> 2012-06-05 13:16:15.433+0000: 2375: error :
> qemuCollectPCIAddress:743
> : XML error: Attempted double use of PCI Address '0:0:2.0'
>
> I remove the new machine and try to start old machine. i get the
> error again! and i'm enable to start old machine. Can you please
> attach the engine.log and vdsm.log files? Yes, I attached both of
> them.
>
> Are you working with the most updated upstream code? I'm working
> with
> build from git -
> faef6297b0d01203e88040b2707f9abfbd754d3f. more information is
> available
> here: http://www.dreyou.org/ovirt/ You can see the issue in
> vdsm.log
> file. You have 3 video cards, all on the same address.
>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02"
> type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02"
> type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
> <video>
> <address domain="0x0000" function="0x0" slot="0x02"
> type="pci"
> bus="0x00"/>
> <model heads="1" type="qxl" vram="65536"/>
> </video>
>
> Looking at the vdsm code (in vdsm/libvirtvm.py), you can see why
> such
> a thing might happen (also look at the FIXME comment :-) ).
>
> # FIXME. We have an identification problem here.
> # Video card device has not unique identifier, except
> the
> alias
> # (but backend not aware to device's aliases).
> # So, for now we can only assign the address according
> to
> devices order.
> for vc in self._devices[vm.VIDEO_DEVICES]:
> if not hasattr(vc, 'address') or not hasattr(vc,
> 'alias'):
> vc.alias = alias
> vc.address = address
> break
> # Update vm's conf with address
> for dev in self.conf['devices']:
> if (dev['type'] == vm.VIDEO_DEVICES) and \
> (not dev.get('address') or not
> dev.get('alias')):
> dev['address'] = address
> dev['alias'] = alias
> break
>
> The code above is responsible to return the engine core the device
> addresses, after libvirt executes the VM, so that they will be
> persistent, and used in future executions of the VM.
>
> Now, the engine core is aware of the alias (as of the exact commit
> you used :-) ), but the first time you run the VM, you can get the
> addresses wrong, as the alias isn't taken into account.
>
> Would you like to try to fix this issue? The fix will be to make a
> better logic in the code above. Similar examples can be found in
> this file, for example in the section that does the same for
> controllers.
>
> If not, let me know and I'll go ahead and fix that.
>
> In the meantime, you can workaround this issue by going to the
> vm_device table, identifying these three devices, leave the
> address
> as is for the first video card of your VM (you probably have
> video0/1/2 as aliases), and try to run the VM again.
> Now, the engine will pass the one with the correct address as the
> first, and libvirt will allocate the right addresses to the other
> two.
> Hopefully this will be enough.
>
> Oved
>
>
>
> We had an issue with the monitors, in which the order of the
> monitor devices is important, as the first one needs to get the
> address 0:0:2.0, but that issue was fixed.
> Are you using more than one monitor? No, I'm using spice or vnc
> just
> for getting graphic.
>
> The vdsm.log fill will help a lot here, as it contains the VM's
> domain XML file, which will show us all the devices we send
> libvirt, and all the addresses that the engine expects to get from
> it.
>
> Any idea?
>
> Thanks.
>
>
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
More information about the Users
mailing list