[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v6 00/13] execute hotplug scripts from libxl



On Thu, 2012-06-14 at 13:21 +0100, Roger Pau Monne wrote:
...

It seems that the error handling when the bootloader fails is broken by
this change. Actually I think it was broken before (seemed to blindly
plunge on, Ian J CCd) but now it just hangs.

Before this series a failed bootloader invocation would be:
        # xl -vvv cr /tmp/di-test.cfg 
        Parsing config from /tmp/di-test.cfg
        xl: acquire lock
        xl: acquire lock rc=0
        libxl: debug: libxl_create.c:1025:do_domain_create: ao 0x8069d80: 
create: how=(nil) callback=(nil) poller=0x8069dc0
        libxl: debug: libxl_device.c:188:libxl__device_disk_set_backend: Disk 
vdev=xvdd spec.backend=unknown
        libxl: debug: libxl_device.c:142:disk_try_backend: Disk vdev=xvdd, 
backend phy unsuitable as phys path not a block device
        libxl: debug: libxl_device.c:149:disk_try_backend: Disk vdev=xvdd, 
backend tap unsuitable because blktap not available
        libxl: debug: libxl_device.c:224:libxl__device_disk_set_backend: Disk 
vdev=xvdd, using backend qdisk
        libxl: debug: libxl_device.c:188:libxl__device_disk_set_backend: Disk 
vdev=xvda spec.backend=unknown
        libxl: debug: libxl_device.c:224:libxl__device_disk_set_backend: Disk 
vdev=xvda, using backend phy
        libxl: debug: libxl_create.c:625:initiate_domain_create: running 
bootloader
        libxl: debug: libxl_device.c:188:libxl__device_disk_set_backend: Disk 
vdev=(null) spec.backend=qdisk
        libxl: debug: libxl.c:2061:libxl__device_disk_local_attach: locally 
attaching qdisk /scratch/di-test.iso
        libxl: debug: libxl_bootloader.c:354:libxl__bootloader_run: Config 
bootloader value: pygrub
        libxl: debug: libxl_bootloader.c:370:libxl__bootloader_run: Checking 
for bootloader in libexec path: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_create.c:1038:do_domain_create: ao 0x8069d80: 
inprogress: poller=0x8069dc0, flags=i
        libxl: debug: libxl_event.c:512:libxl__ev_xswatch_register: watch 
w=0x8069ef8 wpath=/local/domain/27 token=3/0: register slotnum=3
        libxl: debug: libxl_event.c:1604:libxl__ao_progress_report: ao 
0x8069d80: progress report: ignored
        libxl: debug: libxl_bootloader.c:478:bootloader_gotptys: executing 
bootloader: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: --args=debian-installer/exit/always_halt=true -- console=hvc0 
hostname=di-test domain=uk.xensource.com auto-install/enable=true 
url=http://cosworth.uk.xensource.com/users/ianc/ks/wheezy.cfg 
base-installer/kernel/image=linux-image-686-pae
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: --output=/var/run/xen/bootloader.27.out
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: --output-format=simple0
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: --output-directory=/var/run/xen/bootloader.27.d
        libxl: debug: libxl_bootloader.c:482:bootloader_gotptys:   bootloader 
arg: /scratch/di-test.iso
        libxl: debug: libxl_event.c:457:watchfd_callback: watch w=0x8069ef8 
wpath=/local/domain/27 token=3/0: event epath=/local/domain/27
        libxl: error: libxl_bootloader.c:557:bootloader_finished: bootloader 
failed - consult logfile /var/log/xen/bootloader.27.log
        libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: 
bootloader [7754] exited with error status 1
        libxl: debug: libxl_event.c:549:libxl__ev_xswatch_deregister: watch 
w=0x8069ef8 wpath=/local/domain/27 token=3/0: deregister slotnum=3
        libxl: error: libxl_create.c:851:domcreate_rebuild_done: cannot 
(re-)build domain: -3
        libxl: debug: libxl_event.c:1434:libxl__ao_complete: ao 0x8069d80: 
complete, rc=-3
        libxl: error: libxl.c:3407:libxl_set_vcpuaffinity: setting vcpu 
affinity: No such process
        libxl: warning: libxl.c:3421:libxl_set_vcpuaffinity_all: failed to set 
affinity for 0
        xc: error: do_evtchn_op: HYPERVISOR_event_channel_op failed: -1: 
Internal error
        xc: error: do_evtchn_op: HYPERVISOR_event_channel_op failed: -1: 
Internal error
        domainbuilder: detail: xc_dom_allocate: cmdline="(null)", 
features="(null)"
        libxl: debug: libxl_dom.c:256:libxl__build_pv: pv kernel mapped 0 path 
(null)
        
        domainbuilder: detail: xc_dom_kernel_file: filename="(null)"
        libxl: error: libxl_dom.c:268:libxl__build_pv: xc_dom_kernel_file 
failed: Bad address
        domainbuilder: detail: xc_dom_release: called
        xl: libxl_event.c:1427: libxl__ao_inprogress_gc: Assertion 
`!ao->complete' failed.
        Aborted

So it appears to blunder on and then fail for some other reason.

With this series applied instead I see:
        # xl -vvv cr /tmp/di-test.cfg 
        Parsing config from /tmp/di-test.cfg
        xl: acquire lock
        xl: acquire lock rc=0
        libxl: debug: libxl_create.c:1135:do_domain_create: ao 0x8069d80: 
create: how=(nil) callback=(nil) poller=0x8069dc0
        libxl: debug: libxl_device.c:253:libxl__device_disk_set_backend: Disk 
vdev=xvdd spec.backend=unknown
        libxl: debug: libxl_device.c:207:disk_try_backend: Disk vdev=xvdd, 
backend phy unsuitable as phys path not a block device
        libxl: debug: libxl_device.c:214:disk_try_backend: Disk vdev=xvdd, 
backend tap unsuitable because blktap not available
        libxl: debug: libxl_device.c:289:libxl__device_disk_set_backend: Disk 
vdev=xvdd, using backend qdisk
        libxl: debug: libxl_device.c:253:libxl__device_disk_set_backend: Disk 
vdev=xvda spec.backend=unknown
        libxl: debug: libxl_device.c:289:libxl__device_disk_set_backend: Disk 
vdev=xvda, using backend phy
        libxl: debug: libxl_create.c:665:initiate_domain_create: running 
bootloader
        libxl: debug: libxl_device.c:253:libxl__device_disk_set_backend: Disk 
vdev=(null) spec.backend=qdisk
        libxl: debug: libxl.c:2224:libxl__device_disk_local_attach: locally 
attaching qdisk /scratch/di-test.iso
        libxl: debug: libxl_bootloader.c:413:bootloader_disk_attached_cb: 
Config bootloader value: pygrub
        libxl: debug: libxl_bootloader.c:429:bootloader_disk_attached_cb: 
Checking for bootloader in libexec path: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_create.c:1148:do_domain_create: ao 0x8069d80: 
inprogress: poller=0x8069dc0, flags=i
        libxl: debug: libxl_event.c:512:libxl__ev_xswatch_register: watch 
w=0x8069f98 wpath=/local/domain/30 token=3/0: register slotnum=3
        libxl: debug: libxl_event.c:1604:libxl__ao_progress_report: ao 
0x8069d80: progress report: ignored
        libxl: debug: libxl_bootloader.c:549:bootloader_gotptys: executing 
bootloader: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: /usr/lib/xen/bin/pygrub
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: --args=debian-installer/exit/always_halt=true -- console=hvc0 
hostname=di-test domain=uk.xensource.com auto-install/enable=true 
url=http://cosworth.uk.xensource.com/users/ianc/ks/wheezy.cfg 
base-installer/kernel/image=linux-image-686-pae
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: --output=/var/run/xen/bootloader.30.out
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: --output-format=simple0
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: --output-directory=/var/run/xen/bootloader.30.d
        libxl: debug: libxl_bootloader.c:553:bootloader_gotptys:   bootloader 
arg: /scratch/di-test.iso
        libxl: debug: libxl_event.c:457:watchfd_callback: watch w=0x8069f98 
wpath=/local/domain/30 token=3/0: event epath=/local/domain/30
        libxl: error: libxl_bootloader.c:628:bootloader_finished: bootloader 
failed - consult logfile /var/log/xen/bootloader.30.log
        libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: 
bootloader [7783] exited with error status 1
        libxl: debug: libxl_event.c:549:libxl__ev_xswatch_deregister: watch 
w=0x8069f98 wpath=/local/domain/30 token=3/0: deregister slotnum=3
        <hang>

I suspect that if it didn't hang it would continue with the dodgy
behaviour above so I think both behaviours warrant investigation.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.