Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2017-06-23 09:14:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xen" Fri Jun 23 09:14:58 2017 rev:231 rq:505582 version:4.9.0_08 Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2017-06-17 10:18:09.900583236 +0200 +++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2017-06-23 09:15:00.454897458 +0200 @@ -1,0 +2,14 @@ +Wed Jun 21 14:03:40 MDT 2017 - carnold@suse.com + +- Update block-dmmd script (bsc#1002573) + block-dmmd + +------------------------------------------------------------------- +Tue Jun 20 15:18:25 MDT 2017 - carnold@suse.com + +- Update to Xen 4.9.0-rc8+ (fate#321394, fate#323108) + xen-4.9.0-testing-src.tar.bz2 + gcc7-arm.patch +- Drop gcc7-error-xenpmd.patch + +------------------------------------------------------------------- Old: ---- gcc7-error-xenpmd.patch New: ---- gcc7-arm.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.qXUB07/_old 2017-06-23 09:15:05.126237418 +0200 +++ /var/tmp/diff_new_pack.qXUB07/_new 2017-06-23 09:15:05.126237418 +0200 @@ -278,9 +278,9 @@ Patch421: xenpaging.doc.patch Patch422: stubdom-have-iovec.patch Patch423: vif-route.patch -Patch424: gcc7-error-xenpmd.patch -Patch425: gcc7-mini-os.patch -Patch426: gcc7-xen.patch +Patch424: gcc7-mini-os.patch +Patch425: gcc7-xen.patch +Patch426: gcc7-arm.patch # Other bug fixes or features Patch451: xenconsole-no-multiple-connections.patch Patch452: hibernate.patch ++++++ block-dmmd ++++++ --- /var/tmp/diff_new_pack.qXUB07/_old 2017-06-23 09:15:05.334208033 +0200 +++ /var/tmp/diff_new_pack.qXUB07/_new 2017-06-23 09:15:05.334208033 +0200 @@ -2,20 +2,32 @@ # Usage: block-dmmd [add args | remove args] # -# the dmmd device syntax (in xm/xl commands/configs) is something like: -# dmmd:md;/dev/md0;md;/dev/md1;lvm;/dev/vg1/lv1 +# the dmmd device syntax (in xl commands/configs) is something like: +# script=block-dmmd,md;/dev/md0;md;/dev/md1;lvm;/dev/vg1/lv1 # or -# dmmd:lvm;/dev/vg1/lv1;lvm;/dev/vg1/lv2;md;/dev/md0 +# script=block-dmmd,lvm;/dev/vg1/lv1;lvm;/dev/vg1/lv2;md;/dev/md0 # device pairs (type;dev) are processed in order, with the last device # assigned to the VM # +# Note - When using the libxl stack, the "script=block-dmmd" option +# is required. See man xl-disk-configuration(5) for more information. +# # md devices can optionally: # specify a config file through: # md;/dev/md100(/var/xen/config/mdadm.conf) # use an array name (mdadm -N option): -# dmmd:md;My-MD-name;lvm;/dev/vg1/lv1 +# md;My-MD-name;lvm;/dev/vg1/lv1 +# +# Completely expressive syntax should be similar to: +# "format=raw, vdev=xvdb, access=rw, script=block-dmmd, \ +# target=md;/dev/md0(/etc/mdadm.conf);lvm;/dev/vg1/lv1" # +## # History: +# 2017-06-12, mlatimer@suse.com: +# Merge LVM improvements by loic.devulder@mpsa.com +# Document libxl "script=block-dmmd" syntax in examples +# Remove xm/xend references (e.g. parsed_timeout from xend-config.sxp) # 2016-05-27, mlatimer@suse.com: # Merge improvements by loic.devulder@mpsa.com. Highlights include: # - Re-write and simplification to speed up the script! @@ -51,6 +63,7 @@ typeset -rx PVSCAN_BIN=/sbin/pvscan typeset -rx VGSCAN_BIN=/sbin/vgscan typeset -rx VGCHANGE_BIN=/sbin/vgchange +typeset -rx CLVMD_BIN=/usr/sbin/clvmd typeset -rx DATE_LOG="date +%F_%T.%N" typeset -rx DATE_SEC="date +%s" @@ -61,6 +74,21 @@ # We check for errors ourselves set +e +function reload_clvm() +{ + # If we are in cluster mode + if ps -e | grep -q [c]lvmd 2>/dev/null; then + # Logging message + log err "Synchronizing cLVM..." + + # Synchronize cLVM + ${CLVMD_BIN} -R > /dev/null 2>&1 \ + || return 1 + fi + + return 0 +} + function run_mdadm() { local mdadm_cmd=$1 @@ -118,21 +146,22 @@ # Is MD device already active? # We need to use full path name, aliase is not possible... - if [ -e $dev_path/${dev##*/} ]; then - ${MDADM_BIN} -Q -D $dev_path/${dev##*/} 2>/dev/null \ + if [ -e ${dev_path}/${dev##*/} ]; then + ${MDADM_BIN} -Q -D ${dev_path}/${dev##*/} 2>/dev/null \ | grep -iq state.*\:.*inactive || return 0 fi # Activate MD device run_mdadm "-A ${mdadm_opts} ${dev} ${cfg}" rc=$? + # A return code of 2 can indicate the array configuration was incorrect if [[ ${rc} == 2 ]]; then # Logging message echo "[$(${DATE_LOG})] verifying MD device ${dev} activation..." >&2 # If the array is active, return 0, otherwise return an error - ${MDADM_BIN} -Q -D $dev_path/${dev##*/} &>/dev/null && return 0 \ + ${MDADM_BIN} -Q -D ${dev_path}/${dev##*/} &>/dev/null && return 0 \ || return 1 fi @@ -167,46 +196,52 @@ return $? } -function activate_lvm() +function lvm_action() { + local action=$1 + local dev=$2 local run_timeout=90 - local parsed_timeout local end_time - # If /etc/xen/xend-config.sxp exists (e.g. SLES11), use - # device-create-timeout, instead of the default setting - if [[ -f /etc/xen/xend-config.sxp ]]; then - parsed_timeout=$(grep -v "^[ \t]*#.*" /etc/xen/xend-config.sxp \ - |sed -n 's/(device-create-timeout \+\([0-9]\+\))/\1/p') - if [[ ! -z $parsed_timeout ]]; then - run_timeout=$((${parsed_timeout}*9/10)) - fi - fi - - # First scan for PVs and VGs - # We need this for using MD device as PV - ${PVSCAN_BIN} > /dev/null 2>&1 -# ${VGSCAN_BIN} --mknodes > /dev/null 2>&1 - # Logging message - echo "[$(${DATE_LOG})] activate LVM device ${dev}..." >&2 + echo "[$(${DATE_LOG})] ${action} LVM device ${dev}..." >&2 # Set end_time for the loop (( end_time = $(${DATE_SEC}) + run_timeout )) while true; do - ${LVCHANGE_BIN} -aey $1 > /dev/null 2>&1 - - if [ $? -eq 0 -a -e $1 ]; then - return 0 + # Action depends of what the user asks + if [[ ${action} == activate ]]; then + # First scan for PVs and VGs + # We need this for using MD device as PV + ${PVSCAN_BIN} > /dev/null 2>&1 + + ${LVCHANGE_BIN} -aey ${dev} > /dev/null 2>&1 \ + && [[ -e ${dev} ]] \ + && return 0 + elif [[ ${action} == deactivate ]]; then + ${LVCHANGE_BIN} -aen ${dev} > /dev/null 2>&1 \ + && return 0 + + # If the LV is already deactivated we may be in an infinite loop + # So we need to test if the LV is still present + [[ -e ${dev} ]] || return 0 fi - sleep 0.1 + # It seems that we had a problem during lvchange + # If we are in a cluster the problem may be due to a cLVM locking bug, + # so try to reload it + reload_clvm + # If it takes too long we need to return an error if (( $(${DATE_SEC}) >= end_time )); then - log err "Failed to activate $1 within ${run_timeout} seconds" + log err "Failed to ${action} $1 within ${run_timeout} seconds" return 1 fi + + # Briefly sleep before restarting the loop + sleep 0.1 + done # Normally we should not get here, but if this happens @@ -214,23 +249,6 @@ return 1 } -function deactivate_lvm() -{ - # Logging message - echo "[$(${DATE_LOG})] deactivate LVM device ${dev}..." >&2 - - ${LVCHANGE_BIN} -aen $1 > /dev/null 2>&1 - - if [ $? -eq 0 ]; then - # We may have to deactivate the VG now, but can ignore errors: -# ${VGCHANGE_BIN} -an ${1%/*} || : - # Maybe we need to cleanup the LVM cache: -# ${VGSCAN_BIN} --mknodes || : - return 0 - fi - return 1 -} - # Variables typeset command=$1 typeset BP=100 @@ -265,7 +283,7 @@ return $? ;; "lvm") - activate_lvm $2 + lvm_action activate $2 return $? ;; esac @@ -283,7 +301,7 @@ return $? ;; "lvm") - deactivate_lvm $2 + lvm_action deactivate $2 return $? ;; esac ++++++ gcc7-arm.patch ++++++ Fixes compile time warning -> error xc_dom_arm.c: In function 'meminit': xc_dom_arm.c:229:31: error: 'domctl.u.address_size.size' may be used uninitialized in this function [-Werror=maybe-uninitialized] --- xen-4.9.0-testing/tools/libxc/xc_dom_arm.c.orig 2017-06-21 15:17:54.663169127 -0600 +++ xen-4.9.0-testing/tools/libxc/xc_dom_arm.c 2017-06-21 15:18:44.141295411 -0600 @@ -223,6 +223,7 @@ static int set_mode(xc_interface *xch, d domctl.domain = domid; domctl.cmd = XEN_DOMCTL_set_address_size; + domctl.u.address_size.size = 0; for ( i = 0; i < ARRAY_SIZE(types); i++ ) if ( !strcmp(types[i].guest, guest_type) ) domctl.u.address_size.size = types[i].size; ++++++ libxl.pvscsi.patch ++++++ --- /var/tmp/diff_new_pack.qXUB07/_old 2017-06-23 09:15:05.522181473 +0200 +++ /var/tmp/diff_new_pack.qXUB07/_new 2017-06-23 09:15:05.522181473 +0200 @@ -38,7 +38,7 @@ =================================================================== --- xen-4.9.0-testing.orig/docs/man/xl.cfg.pod.5.in +++ xen-4.9.0-testing/docs/man/xl.cfg.pod.5.in -@@ -548,6 +548,62 @@ Specify the backend domain name or id, d +@@ -550,6 +550,62 @@ Specify the backend domain name or id, d =back ++++++ xen-4.9.0-testing-src.tar.bz2 ++++++ ++++ 4266 lines of diff (skipped)