[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] fix wrong path while calling pygrub and libxl-save-helper
>>>Matt Wilson <msw@xxxxxxxxxx> wrote: > On Sat, Jan 05, 2013 at 04:10:52PM +0800, Bamvor Jian Zhang wrote: > > 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. > > Hi Bamvor, > > Please include a "Signed-off-by:" line in your patches. See "Signing > off a patch" in http://wiki.xen.org/wiki/Submitting_Xen_Patches sorry missing it. i will add it next time. > Do you see this problem when you run "./configure --libdir=/usr/lib64"? > See the 4.2 release notes for more information: > http://wiki.xen.org/wiki/Xen_4.2_Release_Notes#Build_Requirements I got this issue while using the above libdir, here is my command of configure ./configure --enable-xenapi --prefix=/usr --exec_prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libdir=/usr/lib64 --datadir=/usr/share but the LIBEXEC is force set to /usr/lib/xen/bin in config/StdGNU.mk. So, the libdir is /usr/lib64 while libexec is /usr/bin/xen/bin in tools/libxl/_paths.h meanwhile, the libxl-save-helper is install to "PRIVATE_BINDER" in tools/libxl/Makefile not LIBEXEC: $(INSTALL_PROG) libxl-save-helper $(DESTDIR)$(PRIVATE_BINDIR) using the "PRIVATE_BINDER" in run_helper make it coherence with this Makefile. BTW, these files are not changed after xen4.2, but i only found this issue in xen-unstable. > Matt > > > diff -r c4114a042410 -r 68e54ac2d3ed tools/libxl/libxl_bootloader.c > > --- a/tools/libxl/libxl_bootloader.c Fri Dec 21 17:05:38 2012 +0000 > > +++ b/tools/libxl/libxl_bootloader.c Sat Jan 05 16:02:53 2013 +0800 > > @@ -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); > > diff -r c4114a042410 -r 68e54ac2d3ed tools/libxl/libxl_save_callout.c > > --- a/tools/libxl/libxl_save_callout.c Fri Dec 21 17:05:38 2012 +0000 > > +++ b/tools/libxl/libxl_save_callout.c Sat Jan 05 16:02:53 2013 +0800 > > @@ -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++) > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |