xapi-project / xenopsd Goto Github PK
View Code? Open in Web Editor NEWXCP toolstack domain manager
License: Other
XCP toolstack domain manager
License: Other
sudo /home/djs/.opam/system/bin/xenopsd-xl -config //home/djs/.opam/system/etc/xenopsd.conf
Fatal error: exception Unix.Unix_error(20, "open", "/etc/xcp/22737414-9720-4997-8542-2f92decd326d")
This is probably because of xcp-inventory.
[jbulpin@bedford ~]$ sudo ~/.opam/4.00.1/bin/xenops-cli add /VMs/cfg
2eee28c7-12ac-4598-98b8-17ffc2d4360c
2eee28c7-12ac-4598-98b8-17ffc2d4360c
Hope this is the right place to report. Builded xenserver-core on debian jessie this weekend using the buildroot git from xenserver gitup. Modified the build environment to build only those packages not already existing in jessie with the exception of ocaml-lwt, js_of_ocmal whom had to be rebuild to build ocaml-cohttp.
After alot of tweaks to various config files and py libraries i finaly got it working to an stage where the ffs storage can be used an liunx pv vm's can be imported and run without issues.
If I try to start an hvm vm however it fails and the only error message that appears in the syslog is
May 20 03:57:43 jessie2 xenopsd-xc: [debug|jessie2|10|Async.VM.start R:c1b7e326f2e6|task_server] Task 70 failed; exception = ["Internal_error", "XenguestHelper.Domain_builder_error("hvm_build", 1, " Insufficient space to load modules.\\"")"]
Full debug log during the vm start can be seen here:
https://gist.github.com/achim71/75685fa525a8fe8a4c00
dmesg during dom0 start
https://gist.github.com/achim71/e1f92eca0da85db7530a
When invoked by xenopsd qemu-dm-wrapper fails silently however when run interactively it is fine. The problem is that the enable_core_dumps function tries to set RLIMIT_CORE with a soft limit of 64M and a hard limit (from the existing hard limit) of 0 - this leads to an unhandled ValueError. A possible fix is:
hardlimit = oldlimits[1]
if limit > hardlimit:
hardlimit = limit
setrlimit(RLIMIT_CORE, (limit, hardlimit))
+ /usr/bin/ocamlfind ocamlc -c -g -I lib -warn-error +a -warn-error +a -package
cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -
package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -
package threads -package threads.posix -package uri -package uuidm -package uutf
-package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -packa
ge xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenst
ore -package xenstore.unix -package xenstore_transport -package xenstore_transpo
rt.unix -package xmlm -syntax camlp4o -thread -I xc -I lib -o xc/xenops_server_x
en.cmo xc/xenops_server_xen.ml
File "xc/xenops_server_xen.ml", line 1233, characters 19-31:
Error: Unbound value Vm.sexp_of_t
Command exited with code 2.
Again, this is a backend-specific detail which should be pushed into xenopsd and removed from xapi. The Cpuid module should be used only from the 'xc' (and 'xl'?) xenopsd backends.
By default xl runs hotplug scripts itself rather than via udev. xenopsd requires udev to run the scripts. This means that a Xen 4.2 system which has used xl at some point will have /local/domain/0/libxl/disable_udev set which cause udev-run scripts to exit.
Easy workaround it to put xl into udev mode (in /etc/xen/xl.conf set "run_hotplug_scripts=0") and (if xl has already been run in non-udev mode) remove the offending xenstore key.
The VM/device performance counters are backend specific and the code for dealing with them currently lives in xapi. Instead xenopsd should export the data sources allowing xapi or rrdd (or someone else like an SNMP agent) to process them.
This can be reproduced as:
ssh xenserver xe console vm=myvm
This causes a fast loop of connecting, exiting, and restarting several times per second, which floods the debug log. The problem continues after 'xe console' is killed, but clears up once xapi is restarted.
#=== ERROR while installing xapi-xenopsd.0.9.44 ===============================#
# opam-version 1.2.0 (75c4bf0dd32913f9218ffa882e683e01d6cdfb0f)
# os linux
# command make
# path /home/opam/.opam/4.01.0/build/xapi-xenopsd.0.9.44
# compiler 4.01.0
# exit-code 2
# env-file /home/opam/.opam/4.01.0/build/xapi-xenopsd.0.9.44/xapi-xenopsd-17557-ab22a1.env
# stdout-file /home/opam/.opam/4.01.0/build/xapi-xenopsd.0.9.44/xapi-xenopsd-17557-ab22a1.out
# stderr-file /home/opam/.opam/4.01.0/build/xapi-xenopsd.0.9.44/xapi-xenopsd-17557-ab22a1.err
### stdout ###
# ...[truncated]
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -thread -I xc -I lib -o xc/hotplug.cmo xc/hotplug.ml
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -thread -I xc -I lib -o xc/memory.cmo xc/memory.ml
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -thread -I xc -I lib -o xc/stubdom.cmi xc/stubdom.mli
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -thread -I xc -I lib -o xc/xenctrlext.cmi xc/xenctrlext.mli
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -thread -I xc -I lib -o xc/xenstore_watch.cmo xc/xenstore_watch.ml
# /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -syntax camlp4o -thread -I xc -I lib -o xc/xenops_server_xen.cmo xc/xenops_server_xen.ml
# + /home/opam/.opam/4.01.0/bin/ocamlfind ocamlc -c -g -annot -bin-annot -I lib -package cohttp -package fd-send-recv -package forkexec -package rpclib -syntax camlp4o -package rpclib.syntax -package sexplib -syntax camlp4o -package sexplib.syntax -package threads -package threads.posix -package uri -package uuidm -package uutf -package xcp -package xcp-inventory -package xcp-rrd -package xcp.memory -package xcp.rrd -package xcp.storage -package xcp.xen -package xenctrl -package xenstore -package xenstore.unix -package xenstore_transport -package xenstore_transport.unix -package xmlm -syntax camlp4o -thread -I xc -I lib -o xc/xenops_server_xen.cmo xc/xenops_server_xen.ml
# File "xc/xenops_server_xen.ml", line 165, characters 28-42:
# Error: Unbound module Oclock
# Command exited with code 2.
... which breaks "make install" under spam
If we have no pygrub binary, we should fail soft and not advertise the pygrub capability.
On EL6:
When building a PV VM with pygrub, create_vbd_frontend attaches the VM's boot block device to dom0 for pygrub to operate on. This triggers udev to start blkid.
If blkid does not finish before pygrub, destroy_vbd_frontend will fail to close the device, since blkid is holding it open.
After this, bad stuff. The task will hang, the vdi will remain attached to the dom0, the blkid process can't be killed, and a reboot is required, but the reboot process hangs when stopping the 'blk-availability' service, so the host must be power cycled.
The following links suggest running something like 'udevadm settle', which will wait for the udev event queue to empty, and then exit:
https://www.redhat.com/archives/libguestfs/2012-February/msg00023.html
https://rwmj.wordpress.com/2012/01/19/udev-unexpectedness/#content
For a cheap hack, I added this to the end of the pygrub script, and the problem seems to have disappeared. Of course pygrub isn't the right place for this, but I'm not sure what is. The above links suggest it's possible to run 'udevadm settle' too early before the event is placed in the udev queue, so perhaps it should be in destroy_vbd_frontend.
Hi
I'm pretty new with Ocaml stuff, perhaps I have done something wrong but xapi-xenopsd build failed with:
File "lib/xenopsd.ml", lines 188-193, characters 8-11:
188 | ........Rpc.
189 | {
190 | name= "VM.import_metadata"
191 | ; params=
192 | [Rpc.Dict [("debug_info", debug_info); ("metadata", metadata)]]
193 | }
Error: Some record fields are undefined: notif
Logs
xenopsd.log
Thx
The travis configuration needs an update following upstream changes.
We should fail soft, and not advertise the capability to start HVM guests
xenopsd take these quotes literally so can't find the file
File "lib/suspend_image_viewer.ml", line 55, characters 41-43:
Error: Unbound value |>
Command exited with code 2.
It's useful to support earlier v4 compilers for a bit longer. I believe RHEL 7 is < 4.02
I notice our .spec file performs a manual install. Running "make install" shows me:
# # Parallel statistics: { count(total): 13(125), max: 7, min: 2, average(total): 3.308(1.240) }
# install -D ./dist/build/xenopsd_libvirt/xenopsd_libvirt //home/vagrant/.opam/system/bin/xenopsd_libvirt
which appears to be an obuild path, in an OASIS project...
If VM.make failed, the reservation will leaves. So sugestion is doing delete reservation in with_reservation function if excepted occured
It doesn't look in the right place on ubuntu.
Higher-level tools like xapi need to be able to query
To be consistent with the rest of the xenopsd API, we should use HOST.stat.
The path is hardcoded to /usr/sbin/xenstore-write however on my CentOS 6.3 system xenstore-write is in /usr/bin
xenopsd expects pygrub to have the XenServer additional args of --default_args, --extra_args and --vm. These either need upstreaming and/or xenopsd to not use them.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.