On Wed, 2009-07-01 at 18:40 +0200, Guido Günther wrote: > Hi Fabio, > On Wed, Jul 01, 2009 at 03:23:56PM +0200, Fabio M. Di Nitto wrote: > > Now my question is: did you mangle the configuration you sent me > > manually? because there is no matching entry between device to use for a > > node and the fencedevices section and I get: > Yes, I had to get some internal names out. This is what went wrong: > > -<fencedevice agent="fence_ilo" hostname="rnode1.foo.bar" login="reboot" name="node1" passwd="pass"/> > +<fencedevice agent="fence_ilo" hostname="rnode1.foo.bar" login="reboot" name="fence1" passwd="pass"/> Ok perfect thanks. > > # fence_node -vv node2 > make_args(149): /cluster/fencedevices/fencedevice[@name="fence2"]/@* > make_args(156) > Segmentation fault > > > test 2: > > > > If you could please find: > > > > cd = ccs_connect(); (line 287 in agent.c) > > and right before that add: > > fullxpath=1; > > > > That change will ask libccs to use a different Xpath engine internally. > > > > And then re-run test1. > # fence_node -vv node2 > fence_node(289): fullxpath: 0 > fence_node(291): fullxpath: 1 > make_args(149): /cluster/fencedevices/fencedevice[@name="fence2"]/@* > make_args(156) > Segmentation fault > > make_args(156) is just before the strncmp. Trying to print out str > results in a segfault too (that's why it's missing from the output). No matter what, I can't trigger this segfault. Do you have a build log for the package? and could you send me the make/defines.mk in the build tree? gcc versions and usual tool chain info.. maybe it's a gcc bug or maybe it's an optimization that behaves differently between debian and fedora. I have attached a small test case to simply test libccs. At this point I don't believe it's a problem in libfence. Could you please run it for me and send me the output? If the bug is in libccs this would start isolating it. [root@fedora-rh-node4 ~]# gcc -Wall -o testccs main.c -lccs [root@fedora-rh-node4 ~]# ./testccs -hopefully some output- and please check the XPath query at the top of main.c as it could be slightly different given your config. Thanks Fabio
#include <stdio.h> #include <stdlib.h> #include <ccs.h> #include <strings.h> #include <limits.h> static void dump() { int cd, error; const char *path = "/cluster/fencedevices/fencedevice[@name=\"fence2\"]/@*"; char *str; cd = ccs_connect(); if (cd < 0) return; for (;;) { error = ccs_get_list(cd, path, &str); if (error || !str) break; printf("%s\n", str); free(str); } ccs_disconnect(cd); } int main() { printf("xpathlite\n"); dump(); printf("fullxpath\n"); fullxpath = 1; dump(); return 0; }
-- Linux-cluster mailing list Linux-cluster@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/linux-cluster