current mercurial pacemaker stable-1.0 do cibadmin -Q --xpath //@id and watch your cib segfault: WARN: Managed /usr/lib/heartbeat/cib process 15295 killed by signal 11 [SIGSEGV - Segmentation violation]
:) (gdb) bt #0 0x40280a8b in xmlAddChild () from /usr/lib/libxml2.so.2 #1 0x40031828 in add_node_copy (parent=0x80b6c10, src_node=0x8101720) at xml.c:266 #2 0x40051c64 in cib_process_xpath (op=0x806a068 "cib_query", options=2, section=0x80ffe68 "//@id", req=0x8115bf0, input=0x0, existing_cib=0x8115d98, result_cib=0xbfd1d198, answer=0xbfd1d19c) at cib_ops.c:938 #3 0x4004ebb4 in cib_process_query (op=0x806a068 "cib_query", options=2, section=0x80ffe68 "//@id", req=0x8115bf0, input=0x0, existing_cib=0x8115d98, result_cib=0xbfd1d198, answer=0xbfd1d19c) at cib_ops.c:49 #4 0x400531c1 in cib_perform_op (op=0x806a068 "cib_query", call_options=2, fn=0x805c8d4, is_query=1, section=0x80ffe68 "//@id", req=0x8115bf0, input=0x0, manage_counters=0, config_changed=0xbfd1d188, current_cib=0x8115d98, result_cib=0xbfd1d198, diff=0x0, output=0xbfd1d19c) at cib_utils.c:539 blah blah. problem: the result is an attribute node, and gets added to the properties field of the querry-result node on first match, the next match will segfault out somewhere. for only one match, I simply get an empty answer from cibadmin, no segfault. now, why do I want to do that. lets say I have the IP, and want to know the xml id of the IPaddr2 primitive that handles this IP. (yes, of course, you are right. actually I do not care about the IPaddr2, but want to deduce the master id from a given drbd resource name. but lets stay with the IP example for now.) cibadmin -Q --xpath '//primiti...@type="IPaddr2" and instance_attributes/nvpair [...@name = "ip" and @value="10.0.0.1"]]' fine. I can sed the id out from there. but I'd like to just do cibadmin -Q --xpath '//primiti...@type="IPaddr2" and instance_attributes/nvpair [...@name = "ip" and @value="10.0.0.1"]]/@id' (which, unfortunately, is empty). according to xmllint, my xpath query is correct, however: cat > tmp.xml <<___ <cib> <configuration> <resources> <primitive class="ocf" id="ip_try3" provider="heartbeat" type="IPaddr2"> <instance_attributes id="ip_try3-instance_attributes"> <nvpair id="ip_try3-instance_attributes-ip" name="ip" value="10.0.0.1"/> </instance_attributes> </primitive> </resources> </configuration> </cib> ___ xmllint --shell tmp.xml <<<'ls //@id' / > ls //@id tan 7 ip_try3 t-- 27 ip_try3-instance_attributes t-- 30 ip_try3-instance_attributes-ip / > xmllint --shell tmp.xml <<<'ls //primiti...@type="IPaddr2" and instance_attributes/nvpa...@name = "ip" and @value="10.0.0.1"]]/@id' / > ls //primiti...@type="IPaddr2" and instance_attributes/nvpa...@name = "ip" and @value="10.0.0.1"]]/@id tan 7 ip_try3 / > -- : Lars Ellenberg : LINBIT | Your Way to High Availability : DRBD/HA support and consulting http://www.linbit.com DRBD® and LINBIT® are registered trademarks of LINBIT, Austria. _______________________________________________ Pacemaker mailing list Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker