Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 617064 - Fail to start guest error: internal error unable to reserve PCI address 0:0:1
Fail to start guest error: internal error unable to reserve PCI address 0:0:1
Status: CLOSED DUPLICATE of bug 592026
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt (Show other bugs)
6.0
x86_64 Linux
urgent Severity urgent
: rc
: ---
Assigned To: Daniel Veillard
Virtualization Bugs
: TestBlocker
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-22 02:18 EDT by zhanghaiyan
Modified: 2014-11-15 19:28 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-07-22 02:42:38 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description zhanghaiyan 2010-07-22 02:18:11 EDT
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 02:42:13 EDT
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 02:42:38 EDT

*** 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.