f9e7bf330c
- Add upstream patches to fix libxl bugs. These patches have already been posted for inclusion in xen-4.2-testing. 25912-partial-libxl.patch 26372-tools-paths.patch 26468-libxl-race.patch 26469-libxl-race.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=227
57 lines
2.8 KiB
Diff
57 lines
2.8 KiB
Diff
# HG changeset patch
|
|
# User Bamvor Jian Zhang <bjzhang@suse.com>
|
|
# Date 1357906948 0
|
|
# Node ID 2ad5792b4274d76ced39515cbd3f84898b181768
|
|
# Parent ba2d73234d73fc0faa027cd9bdfd3ac90642733c
|
|
fix wrong path while calling pygrub and libxl-save-helper
|
|
|
|
in current xen x86_64, the default libexec directory is /usr/lib/xen/bin,
|
|
while the private binder is /usr/lib64/xen/bin. but some commands(pygrub,
|
|
libxl-save-helper) located in private binder directory is called from
|
|
libexec directory which lead to the following error:
|
|
1, for pygrub bootloader:
|
|
|
|
libxl: debug: libxl_bootloader.c:429:bootloader_disk_attached_cb: /usr/lib/xen/bin/pygrub doesn't exist, falling back to config path
|
|
|
|
2, for libxl-save-helper:
|
|
|
|
libxl: cannot execute /usr/lib/xen/bin/libxl-save-helper: No such file or directory
|
|
libxl: error: libxl_utils.c:363:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 3 save/restore helper stdout pipe
|
|
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: domain 3 save/restore helper [10222] exited with error status 255
|
|
|
|
there are two ways to fix above error. the first one is make such command
|
|
store in the /usr/lib/xen/bin and /usr/lib64/xen/bin(symbol link to
|
|
previous), e.g. qemu-dm. The second way is using private binder dir
|
|
instead of libexec dir. e.g. xenconsole.
|
|
For these cases, the latter one is suitable.
|
|
|
|
Signed-off-by: Bamvor Jian Zhang <bjzhang@suse.com>
|
|
Committed-by: Ian Campbell <ian.campbell@citrix.com>
|
|
|
|
Index: xen-4.2.1-testing/tools/libxl/libxl_bootloader.c
|
|
===================================================================
|
|
--- xen-4.2.1-testing.orig/tools/libxl/libxl_bootloader.c
|
|
+++ xen-4.2.1-testing/tools/libxl/libxl_bootloader.c
|
|
@@ -419,7 +419,7 @@ static void bootloader_disk_attached_cb(
|
|
const char *bltmp;
|
|
struct stat st;
|
|
|
|
- bltmp = libxl__abs_path(gc, bootloader, libxl__libexec_path());
|
|
+ bltmp = libxl__abs_path(gc, bootloader, libxl__private_bindir_path());
|
|
/* Check to see if the file exists in this location; if not,
|
|
* fall back to checking the path */
|
|
LOG(DEBUG, "Checking for bootloader in libexec path: %s", bltmp);
|
|
Index: xen-4.2.1-testing/tools/libxl/libxl_save_callout.c
|
|
===================================================================
|
|
--- xen-4.2.1-testing.orig/tools/libxl/libxl_save_callout.c
|
|
+++ xen-4.2.1-testing/tools/libxl/libxl_save_callout.c
|
|
@@ -172,7 +172,7 @@ static void run_helper(libxl__egc *egc,
|
|
shs->stdout_what = GCSPRINTF("domain %"PRIu32" save/restore helper"
|
|
" stdout pipe", domid);
|
|
|
|
- *arg++ = getenv("LIBXL_SAVE_HELPER") ?: LIBEXEC "/" "libxl-save-helper";
|
|
+ *arg++ = getenv("LIBXL_SAVE_HELPER") ?: PRIVATE_BINDIR "/" "libxl-save-helper";
|
|
*arg++ = mode_arg;
|
|
const char **stream_fd_arg = arg++;
|
|
for (i=0; i<num_argnums; i++)
|