Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 617064 - Fail to start guest error: internal error unable to reserve PCI address 0:0:1
Summary: Fail to start guest error: internal error unable to reserve PCI address 0:0:1
Keywords:
Status: CLOSED DUPLICATE of bug 592026
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt
Version: 6.0
Hardware: x86_64
OS: Linux
urgent
urgent
Target Milestone: rc
: ---
Assignee: Daniel Veillard
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-07-22 06:18 UTC by zhanghaiyan
Modified: 2014-11-16 00:28 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-07-22 06:42:38 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description zhanghaiyan 2010-07-22 06:18:11 UTC
Description of problem:
libvirt-0.8.1-17 has critical issue that it even failed to start a guest with error: internal error unable to reserve PCI address 0:0:1

Version-Release number of selected component (if applicable):
kernel-2.6.32-44.2.el6.x86_64
qemu-img-0.12.1.2-2.97.el6.x86_64
qemu-kvm-0.12.1.2-2.97.el6.x86_64
libvirt-0.8.1-17.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1. # cat rhel6_x86_64_kvm.xml 
<domain type='kvm'>
  <name>rhel6</name>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.0.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/RHEL-Server-6-64-virtio.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>
    <controller type='ide' index='0'>
    </controller>
    <interface type='network'>
      <source network='default'/>
      <target dev='vnet2'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/4'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/4'>
      <source path='/dev/pts/4'/>
      <target port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5903' autoport='yes' keymap='en-us'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
  </devices>
  <seclabel type='dynamic' model='selinux'>
    <label>system_u:system_r:svirt_t:s0:c513,c703</label>
    <imagelabel>system_u:object_r:svirt_image_t:s0:c513,c703</imagelabel>
  </seclabel>
</domain>

2.# virsh define rhel6_x86_64_kvm.xml 
Domain rhel6 defined from rhel6_x86_64_kvm.xml

3. # virsh start rhel6
error: Failed to start domain rhel6
error: internal error unable to reserve PCI address 0:0:1

OR # LIBVIRT_DEBUG=1 virsh start rhel6
06:20:57.017: debug : virInitialize:341 : register drivers
06:20:57.017: debug : virRegisterDriver:929 : registering Test as driver 0
06:20:57.017: debug : virRegisterNetworkDriver:735 : registering Test as network driver 0
06:20:57.017: debug : virRegisterInterfaceDriver:766 : registering Test as interface driver 0
06:20:57.017: debug : virRegisterStorageDriver:797 : registering Test as storage driver 0
06:20:57.017: debug : virRegisterDeviceMonitor:828 : registering Test as device driver 0
06:20:57.017: debug : virRegisterSecretDriver:859 : registering Test as secret driver 0
06:20:57.017: debug : virRegisterNWFilterDriver:890 : registering Test as network filter driver 0
06:20:57.017: debug : virRegisterDriver:929 : registering ESX as driver 1
06:20:57.017: debug : virRegisterInterfaceDriver:766 : registering ESX as interface driver 1
06:20:57.017: debug : virRegisterNetworkDriver:735 : registering ESX as network driver 1
06:20:57.017: debug : virRegisterStorageDriver:797 : registering ESX as storage driver 1
06:20:57.017: debug : virRegisterDeviceMonitor:828 : registering ESX as device driver 1
06:20:57.017: debug : virRegisterSecretDriver:859 : registering ESX as secret driver 1
06:20:57.017: debug : virRegisterNWFilterDriver:890 : registering ESX as network filter driver 1
06:20:57.017: debug : virRegisterDriver:929 : registering remote as driver 2
06:20:57.017: debug : virRegisterNetworkDriver:735 : registering remote as network driver 2
06:20:57.017: debug : virRegisterInterfaceDriver:766 : registering remote as interface driver 2
06:20:57.017: debug : virRegisterStorageDriver:797 : registering remote as storage driver 2
06:20:57.017: debug : virRegisterDeviceMonitor:828 : registering remote as device driver 2
06:20:57.017: debug : virRegisterSecretDriver:859 : registering remote as secret driver 2
06:20:57.017: debug : virRegisterNWFilterDriver:890 : registering remote as network filter driver 2
06:20:57.017: debug : virConnectOpenAuth:1471 : name=(null), auth=0x38bd72ac80, flags=0
06:20:57.017: debug : do_open:1208 : no name, allowing driver auto-select
06:20:57.017: debug : do_open:1216 : trying driver 0 (Test) ...
06:20:57.017: debug : do_open:1222 : driver 0 Test returned DECLINED
06:20:57.017: debug : do_open:1216 : trying driver 1 (ESX) ...
06:20:57.017: debug : do_open:1222 : driver 1 ESX returned DECLINED
06:20:57.017: debug : do_open:1216 : trying driver 2 (remote) ...
06:20:57.017: debug : remoteOpen:1093 : Auto-probe remote URI
06:20:57.017: debug : doRemoteOpen:570 : proceeding with name = 
06:20:57.017: debug : remoteIO:9748 : Do proc=66 serial=0 length=28 wait=(nil)
06:20:57.017: debug : remoteIO:9823 : We have the buck 66 0x7f733a7d3010 0x7f733a7d3010
06:20:57.017: debug : remoteIODecodeMessageLength:9179 : Got length, now need 64 total (60 more)
06:20:57.017: debug : remoteIOEventLoop:9674 : Giving up the buck 66 0x7f733a7d3010 (nil)
06:20:57.017: debug : remoteIO:9854 : All done with our call 66 (nil) 0x7f733a7d3010
06:20:57.017: debug : remoteIO:9748 : Do proc=1 serial=1 length=40 wait=(nil)
06:20:57.017: debug : remoteIO:9823 : We have the buck 1 0x1ae0570 0x1ae0570
06:20:57.116: debug : remoteIODecodeMessageLength:9179 : Got length, now need 56 total (52 more)
06:20:57.116: debug : remoteIOEventLoop:9674 : Giving up the buck 1 0x1ae0570 (nil)
06:20:57.116: debug : remoteIO:9854 : All done with our call 1 (nil) 0x1ae0570
06:20:57.116: debug : remoteIO:9748 : Do proc=110 serial=2 length=28 wait=(nil)
06:20:57.116: debug : remoteIO:9823 : We have the buck 110 0x1ae0570 0x1ae0570
06:20:57.116: debug : remoteIODecodeMessageLength:9179 : Got length, now need 76 total (72 more)
06:20:57.116: debug : remoteIOEventLoop:9674 : Giving up the buck 110 0x1ae0570 (nil)
06:20:57.116: debug : remoteIO:9854 : All done with our call 110 (nil) 0x1ae0570
06:20:57.116: debug : doRemoteOpen:895 : Auto-probed URI is qemu:///system
06:20:57.116: debug : doRemoteOpen:914 : Adding Handler for remote events
06:20:57.116: debug : doRemoteOpen:921 : virEventAddHandle failed: No addHandleImpl defined. continuing without events.
06:20:57.116: debug : do_open:1222 : driver 2 remote returned SUCCESS
06:20:57.116: debug : do_open:1242 : network driver 0 Test returned DECLINED
06:20:57.116: debug : do_open:1242 : network driver 1 ESX returned DECLINED
06:20:57.116: debug : do_open:1242 : network driver 2 remote returned SUCCESS
06:20:57.116: debug : do_open:1261 : interface driver 0 Test returned DECLINED
06:20:57.116: debug : do_open:1261 : interface driver 1 ESX returned DECLINED
06:20:57.116: debug : do_open:1261 : interface driver 2 remote returned SUCCESS
06:20:57.116: debug : do_open:1281 : storage driver 0 Test returned DECLINED
06:20:57.116: debug : do_open:1281 : storage driver 1 ESX returned DECLINED
06:20:57.116: debug : do_open:1281 : storage driver 2 remote returned SUCCESS
06:20:57.116: debug : do_open:1301 : node driver 0 Test returned DECLINED
06:20:57.116: debug : do_open:1301 : node driver 1 ESX returned DECLINED
06:20:57.116: debug : do_open:1301 : node driver 2 remote returned SUCCESS
06:20:57.116: debug : do_open:1328 : secret driver 0 Test returned DECLINED
06:20:57.116: debug : do_open:1328 : secret driver 1 ESX returned DECLINED
06:20:57.117: debug : do_open:1328 : secret driver 2 remote returned SUCCESS
06:20:57.117: debug : do_open:1348 : nwfilter driver 0 Test returned DECLINED
06:20:57.117: debug : do_open:1348 : nwfilter driver 1 ESX returned DECLINED
06:20:57.117: debug : do_open:1348 : nwfilter driver 2 remote returned SUCCESS
06:20:57.117: debug : virDomainLookupByName:2127 : conn=0x1adcf40, name=rhel6
06:20:57.117: debug : remoteIO:9748 : Do proc=23 serial=3 length=40 wait=(nil)
06:20:57.117: debug : remoteIO:9823 : We have the buck 23 0x1ae0570 0x1ae0570
06:20:57.117: debug : remoteIODecodeMessageLength:9179 : Got length, now need 88 total (84 more)
06:20:57.117: debug : remoteIOEventLoop:9674 : Giving up the buck 23 0x1ae0570 (nil)
06:20:57.117: debug : remoteIO:9854 : All done with our call 23 (nil) 0x1ae0570
06:20:57.117: debug : virGetDomain:382 : New hash entry 0x1adc580
06:20:57.117: debug : virDomainGetID:2775 : domain=0x1adc580
06:20:57.117: debug : virDomainCreate:4863 : domain=0x1adc580
06:20:57.117: debug : remoteIO:9748 : Do proc=9 serial=4 length=60 wait=(nil)
06:20:57.117: debug : remoteIO:9823 : We have the buck 9 0x1ae0830 0x1ae0830
06:20:57.193: debug : remoteIODecodeMessageLength:9179 : Got length, now need 192 total (188 more)
06:20:57.193: debug : remoteIOEventLoop:9674 : Giving up the buck 9 0x1ae0830 (nil)
06:20:57.193: debug : remoteIO:9854 : All done with our call 9 (nil) 0x1ae0830
06:20:57.193: debug : virDomainGetName:2681 : domain=0x1adc580
error: Failed to start domain rhel6
06:20:57.193: debug : virDomainFree:2215 : domain=0x1adc580
06:20:57.193: debug : virUnrefDomain:463 : unref domain 0x1adc580 rhel6 1
06:20:57.193: debug : virReleaseDomain:416 : release domain 0x1adc580 rhel6 9e071727-397f-6ec3-7884-b48fe5d8a0f4
06:20:57.193: debug : virReleaseDomain:433 : unref connection 0x1adcf40 2
error: internal error unable to reserve PCI address 0:0:1

06:20:57.193: debug : virConnectClose:1497 : conn=0x1adcf40
06:20:57.193: debug : virUnrefConnect:294 : unref connection 0x1adcf40 1
06:20:57.193: debug : remoteIO:9748 : Do proc=2 serial=5 length=28 wait=(nil)
06:20:57.193: debug : remoteIO:9823 : We have the buck 2 0x1ae0570 0x1ae0570
06:20:57.193: debug : remoteIODecodeMessageLength:9179 : Got length, now need 56 total (52 more)
06:20:57.193: debug : remoteIOEventLoop:9674 : Giving up the buck 2 0x1ae0570 (nil)
06:20:57.193: debug : remoteIO:9854 : All done with our call 2 (nil) 0x1ae0570
06:20:57.193: debug : virReleaseConnect:249 : release connection 0x1adcf40


Actual results:
start guest failed

Expected results:
start guest pass

Additional info:
After downgrade libvirt to -15, cannot reproduce this issue

Comment 3 Daniel Veillard 2010-07-22 06:42:13 UTC
Looks like the patch to fix
https://bugzilla.redhat.com/show_bug.cgi?id=592026
reserving 0:0:1 without checking first if it's for
an IDE controller leads to a regression, as the
qemuDomainPCIAddressReserveSlot() fails and domain
won't start.

Daniel

Comment 4 Daniel Veillard 2010-07-22 06:42:38 UTC

*** This bug has been marked as a duplicate of bug 592026 ***


Note You need to log in before you can comment on or make changes to this bug.