ClusterLabs / crmsh

Command-line interface for High-Availability cluster management on GNU/Linux systems.
GNU General Public License v2.0
131 stars 94 forks source link

crmsh moaning about invalid configuration although everything is okay #67

Closed zacha81 closed 9 years ago

zacha81 commented 9 years ago

hello

running crmsh 2.1 or 2.2-rc1 on debian with pacemaker 1.1.12 I get all the time errors like this:

crm configure property maintenance-mode=true ERROR: crmd:metadata: got no meta-data, does this RA exist? ERROR: cib-bootstrap-options: attribute symmetric-cluster does not exist ERROR: cib-bootstrap-options: attribute stonith-action does not exist ERROR: cib-bootstrap-options: attribute maintenance-mode does not exist

Although the config changes are valid and are accepted by the cluster... possibly a problem parsing output from cibadmin?

enabling debug does not give me any hints on what crmsh is missing...

dmuhamedagic commented 9 years ago

On Wed, Nov 12, 2014 at 08:25:21AM -0800, zacha81 wrote:

ERROR: crmd:metadata: got no meta-data, does this RA exist? ERROR: cib-bootstrap-options: attribute symmetric-cluster does not exist ERROR: cib-bootstrap-options: attribute stonith-action does not exist ERROR: cib-bootstrap-options: attribute maintenance-mode does not exist

Looks like crmsh looks for crmd in a wrong place. Where is crmd on your platform? How did you install crmsh?

dmuhamedagic commented 9 years ago

On Wed, Nov 12, 2014 at 08:25:21AM -0800, zacha81 wrote:

ERROR: crmd:metadata: got no meta-data, does this RA exist?

Perhaps we need a bit better error reporting, i.e. if it's a program we cannot get meta-data from then it's most probable that the installation is somehow wrong.

zacha81 commented 9 years ago

Hello!

I debianized crmsh. This it how it looks on the system:

root@storage-voter:/# dpkg -L crmsh /. /var /var/cache /var/cache/crm /etc /etc/crm /etc/crm/crm.conf /usr /usr/sbin /usr/sbin/crm /usr/lib /usr/lib/python2.7 /usr/lib/python2.7/dist-packages /usr/lib/python2.7/dist-packages/crmsh /usr/lib/python2.7/dist-packages/crmsh/xmlbuilder.py /usr/lib/python2.7/dist-packages/crmsh/log_patterns.py /usr/lib/python2.7/dist-packages/crmsh/tmpfiles.py /usr/lib/python2.7/dist-packages/crmsh/completers.py /usr/lib/python2.7/dist-packages/crmsh/crm_gv.py /usr/lib/python2.7/dist-packages/crmsh/msg.py /usr/lib/python2.7/dist-packages/crmsh/ui_cluster.py /usr/lib/python2.7/dist-packages/crmsh/ui_ra.py /usr/lib/python2.7/dist-packages/crmsh/ordereddict.py /usr/lib/python2.7/dist-packages/crmsh/parse.py /usr/lib/python2.7/dist-packages/crmsh/ui_template.py /usr/lib/python2.7/dist-packages/crmsh/constants.py /usr/lib/python2.7/dist-packages/crmsh/ui_options.py /usr/lib/python2.7/dist-packages/crmsh/ui_history.py /usr/lib/python2.7/dist-packages/crmsh/ui_cib.py /usr/lib/python2.7/dist-packages/crmsh/log_patterns_118.py /usr/lib/python2.7/dist-packages/crmsh/ui_utils.py /usr/lib/python2.7/dist-packages/crmsh/pacemaker.py /usr/lib/python2.7/dist-packages/crmsh/report.py /usr/lib/python2.7/dist-packages/crmsh/cibverify.py /usr/lib/python2.7/dist-packages/crmsh/cmd_status.py /usr/lib/python2.7/dist-packages/crmsh/main.py /usr/lib/python2.7/dist-packages/crmsh/idmgmt.py /usr/lib/python2.7/dist-packages/crmsh/crm_pssh.py /usr/lib/python2.7/dist-packages/crmsh/clidisplay.py /usr/lib/python2.7/dist-packages/crmsh/userdir.py /usr/lib/python2.7/dist-packages/crmsh/ui_context.py /usr/lib/python2.7/dist-packages/crmsh/ui_site.py /usr/lib/python2.7/dist-packages/crmsh/cibconfig.py /usr/lib/python2.7/dist-packages/crmsh/ui_configure.py /usr/lib/python2.7/dist-packages/crmsh/xmlutil.py /usr/lib/python2.7/dist-packages/crmsh/ra.py /usr/lib/python2.7/dist-packages/crmsh/utils.py /usr/lib/python2.7/dist-packages/crmsh/ui_node.py /usr/lib/python2.7/dist-packages/crmsh/config.py /usr/lib/python2.7/dist-packages/crmsh/template.py /usr/lib/python2.7/dist-packages/crmsh/schema.py /usr/lib/python2.7/dist-packages/crmsh/command.py /usr/lib/python2.7/dist-packages/crmsh/cliformat.py /usr/lib/python2.7/dist-packages/crmsh/ui_assist.py /usr/lib/python2.7/dist-packages/crmsh/cibstatus.py /usr/lib/python2.7/dist-packages/crmsh/init.py /usr/lib/python2.7/dist-packages/crmsh/rsctest.py /usr/lib/python2.7/dist-packages/crmsh/ui_resource.py /usr/lib/python2.7/dist-packages/crmsh/options.py /usr/lib/python2.7/dist-packages/crmsh/term.py /usr/lib/python2.7/dist-packages/crmsh/scripts.py /usr/lib/python2.7/dist-packages/crmsh/ui_script.py /usr/lib/python2.7/dist-packages/crmsh/ui_corosync.py /usr/lib/python2.7/dist-packages/crmsh/cache.py /usr/lib/python2.7/dist-packages/crmsh/ui_report.py /usr/lib/python2.7/dist-packages/crmsh/corosync.py /usr/lib/python2.7/dist-packages/crmsh/ui_maintenance.py /usr/lib/python2.7/dist-packages/crmsh/help.py /usr/lib/python2.7/dist-packages/crmsh/ui_root.py /usr/lib/python2.7/dist-packages/crmsh/ui_cibstatus.py /usr/share /usr/share/crmsh /usr/share/crmsh/crm.8.adoc /usr/share/crmsh/scripts /usr/share/crmsh/scripts/remove /usr/share/crmsh/scripts/remove/remove.py /usr/share/crmsh/scripts/remove/main.yml /usr/share/crmsh/scripts/add /usr/share/crmsh/scripts/add/add.py /usr/share/crmsh/scripts/add/main.yml /usr/share/crmsh/scripts/check-uptime /usr/share/crmsh/scripts/check-uptime/report.py /usr/share/crmsh/scripts/check-uptime/main.yml /usr/share/crmsh/scripts/check-uptime/fetch.py /usr/share/crmsh/scripts/init /usr/share/crmsh/scripts/init/collect.py /usr/share/crmsh/scripts/init/configure.py /usr/share/crmsh/scripts/init/basic.cib.template /usr/share/crmsh/scripts/init/corosync.conf.template /usr/share/crmsh/scripts/init/authkey.py /usr/share/crmsh/scripts/init/main.yml /usr/share/crmsh/scripts/init/init.py /usr/share/crmsh/scripts/init/verify.py /usr/share/crmsh/scripts/health /usr/share/crmsh/scripts/health/collect.py /usr/share/crmsh/scripts/health/hahealth.py /usr/share/crmsh/scripts/health/report.py /usr/share/crmsh/scripts/health/main.yml /usr/share/crmsh/tests /usr/share/crmsh/tests/history-test.tar.bz2 /usr/share/crmsh/tests/testcases /usr/share/crmsh/tests/testcases/confbasic-xml.exp /usr/share/crmsh/tests/testcases/rset-xml /usr/share/crmsh/tests/testcases/acl.exp /usr/share/crmsh/tests/testcases/node.exp /usr/share/crmsh/tests/testcases/delete /usr/share/crmsh/tests/testcases/shadow /usr/share/crmsh/tests/testcases/edit.excl /usr/share/crmsh/tests/testcases/delete.exp /usr/share/crmsh/tests/testcases/rset /usr/share/crmsh/tests/testcases/commit /usr/share/crmsh/tests/testcases/history.post /usr/share/crmsh/tests/testcases/history.exp /usr/share/crmsh/tests/testcases/newfeatures.exp /usr/share/crmsh/tests/testcases/resource /usr/share/crmsh/tests/testcases/commit.exp /usr/share/crmsh/tests/testcases/confbasic.exp /usr/share/crmsh/tests/testcases/common.excl /usr/share/crmsh/tests/testcases/file /usr/share/crmsh/tests/testcases/node /usr/share/crmsh/tests/testcases/rset-xml.exp /usr/share/crmsh/tests/testcases/shadow.exp /usr/share/crmsh/tests/testcases/acl /usr/share/crmsh/tests/testcases/resource.exp /usr/share/crmsh/tests/testcases/ra.exp /usr/share/crmsh/tests/testcases/basicset /usr/share/crmsh/tests/testcases/edit.exp /usr/share/crmsh/tests/testcases/ra.filter /usr/share/crmsh/tests/testcases/acl.excl /usr/share/crmsh/tests/testcases/edit /usr/share/crmsh/tests/testcases/ra /usr/share/crmsh/tests/testcases/history.excl /usr/share/crmsh/tests/testcases/options.exp /usr/share/crmsh/tests/testcases/history.pre /usr/share/crmsh/tests/testcases/xmlonly.sh /usr/share/crmsh/tests/testcases/rset.exp /usr/share/crmsh/tests/testcases/newfeatures /usr/share/crmsh/tests/testcases/history /usr/share/crmsh/tests/testcases/file.exp /usr/share/crmsh/tests/testcases/options /usr/share/crmsh/tests/testcases/confbasic /usr/share/crmsh/tests/testcases/confbasic-xml /usr/share/crmsh/tests/cibtests /usr/share/crmsh/tests/cibtests/004.exp.xml /usr/share/crmsh/tests/cibtests/001.exp.xml /usr/share/crmsh/tests/cibtests/003.input /usr/share/crmsh/tests/cibtests/004.input /usr/share/crmsh/tests/cibtests/002.exp.xml /usr/share/crmsh/tests/cibtests/002.input /usr/share/crmsh/tests/cibtests/003.exp.xml /usr/share/crmsh/tests/cibtests/001.input /usr/share/crmsh/tests/cibtests/shadow.base /usr/share/crmsh/tests/defaults /usr/share/crmsh/tests/regression.sh /usr/share/crmsh/tests/README.regression /usr/share/crmsh/tests/descriptions /usr/share/crmsh/tests/cib-tests.sh /usr/share/crmsh/tests/crm-interface /usr/share/crmsh/tests/evaltest.sh /usr/share/crmsh/openais_conf_support.sh /usr/share/crmsh/ha_cf_support.sh /usr/share/crmsh/hb_report /usr/share/crmsh/templates /usr/share/crmsh/templates/sbd /usr/share/crmsh/templates/clvm /usr/share/crmsh/templates/gfs2 /usr/share/crmsh/templates/gfs2-base /usr/share/crmsh/templates/apache /usr/share/crmsh/templates/ocfs2 /usr/share/crmsh/templates/virtual-ip /usr/share/crmsh/templates/filesystem /usr/share/crmsh/utillib.sh /usr/share/crmsh/version /usr/share/crmsh/utils /usr/share/crmsh/utils/crm_clean.py /usr/share/crmsh/utils/crm_pkg.py /usr/share/crmsh/utils/crm_rpmcheck.py /usr/share/crmsh/utils/crm_script.py /usr/share/crmsh/utils/crm_init.py /usr/share/man /usr/share/man/man8 /usr/share/man/man8/crmsh_hb_report.8.gz /usr/share/man/man8/crm.8.gz /usr/share/doc /usr/share/doc/crmsh /usr/share/doc/crmsh/AUTHORS /usr/share/doc/crmsh/changelog.gz /usr/share/doc/crmsh/contrib /usr/share/doc/crmsh/contrib/pacemaker-crm.vim.gz /usr/share/doc/crmsh/contrib/pcmk.vim /usr/share/doc/crmsh/contrib/README.vimsyntax /usr/share/doc/crmsh/crmsh_hb_report.8.html /usr/share/doc/crmsh/changelog.Debian.gz /usr/share/doc/crmsh/README /usr/share/doc/crmsh/ChangeLog.gz /usr/share/doc/crmsh/crm.8.html /usr/share/doc/crmsh/copyright

zacha81 commented 9 years ago

Here is some debug output (notice I already commented the RA does not exist thing out... this is about the cib-bootstrap-options:

DEBUG: _cli_set_update: set([]), set(['c_lvm_on_testdata3', 'l_target_testdata3', 'cl_st-storage-test-c', 'cl_st-storage-test-d', 'c_target_testdata3_on_lvm', 'cib-bootstrap-options', 'ms_drbd_testdata3', 'ms_drbd_testdata1', 'p_lvm_testdata3', '167843390', '167843391', 'p_lvm_drbd_testdata1', 'l-st-std', 'l-st-stc', 'p_target_testdata3', 'l_lvm_testdata1', 'p_target_testdata1', 'l_lvm_testdata3', 'c_target_testdata1_on_lvm', 'o_drbd_testdata1_before_lvm', 'l-drbd-testdata3-master-stc', 'l-drbd-testdata1-master-stc', 'l-drbd-testdata1-master-std', 'l-drbd-testdata3-master-std', 'drbd_testdata3', 'drbd_testdata1', 'l_target_testdata1', 'l-drbd-testdata3', 'o_target_testdata3_after_lvm', 'l-drbd-testdata1', '167843389', 'st-storage-test-d', 'o_drbd_testdata3_before_lvm', 'o_target_testdata1_after_lvm', 'c_lvm_on_drbd_testdata1', 'st-storage-test-c']), set([]) DEBUG: resolve_references: st-storage-test-c -> primitive:st-storage-test-c DEBUG: resolve_references: st-storage-test-d -> primitive:st-storage-test-d DEBUG: resolve_references: drbd_testdata3 -> primitive:drbd_testdata3 DEBUG: resolve_references: drbd_testdata1 -> primitive:drbd_testdata1 DEBUG: op!=op: attributes differ: {'interval': '0', 'name': 'promote', 'timeout': '60', 'id': 'drbd_testdata1-promote-0'} != {'interval': '0', 'name': 'promote', 'timeout': '90', 'id': 'drbd_testdata1-promote-0'} DEBUG: update CIB element: primitive:drbd_testdata1 ERROR: cib-bootstrap-options: attribute symmetric-cluster does not exist ERROR: cib-bootstrap-options: attribute stonith-action does not exist ERROR: cib-bootstrap-options: attribute maintenance-mode does not exist DEBUG: test_element failed for property:cib-bootstrap-options DEBUG: ocf:heartbeat:LVM: read and cached meta-data DEBUG: ocf:linbit:drbd: read and cached meta-data

This is preventing me completely from editing the config as I just can do "reedit" and "rollback" at this point... :-(

zacha81 commented 9 years ago

This is how pacemaker looks like:

root@storage-voter:~# dpkg -L pacemaker-cli-utils /. /usr /usr/sbin /usr/sbin/crm_error /usr/sbin/cibadmin /usr/sbin/crm_ticket /usr/sbin/crm_shadow /usr/sbin/crmadmin /usr/sbin/crm_diff /usr/sbin/crm_standby /usr/sbin/iso8601 /usr/sbin/crm_failcount /usr/sbin/crm_attribute /usr/sbin/crm_mon /usr/sbin/crm_verify /usr/sbin/crm_report /usr/sbin/crm_uuid /usr/sbin/crm_resource /usr/sbin/crm_node /usr/sbin/crm_simulate /usr/sbin/crm_master /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/crm_report.8.gz /usr/share/man/man8/crm_verify.8.gz /usr/share/man/man8/crm_node.8.gz /usr/share/man/man8/crm_mon.8.gz /usr/share/man/man8/crm_shadow.8.gz /usr/share/man/man8/crm_failcount.8.gz /usr/share/man/man8/cibadmin.8.gz /usr/share/man/man8/crm_diff.8.gz /usr/share/man/man8/crm_standby.8.gz /usr/share/man/man8/crm_master.8.gz /usr/share/man/man8/crm_ticket.8.gz /usr/share/man/man8/crmadmin.8.gz /usr/share/man/man8/crm_simulate.8.gz /usr/share/man/man8/crm_attribute.8.gz /usr/share/man/man8/iso8601.8.gz /usr/share/man/man8/crm_resource.8.gz /usr/share/man/man8/crm_uuid.8.gz /usr/share/man/man8/crm_error.8.gz /usr/share/doc /usr/share/doc/pacemaker-cli-utils /usr/share/doc/pacemaker-cli-utils/changelog.gz /usr/share/doc/pacemaker-cli-utils/changelog.Debian.gz /usr/share/doc/pacemaker-cli-utils/copyright

root@storage-voter:~# dpkg -L pacemaker /. /var /var/lib /var/lib/heartbeat /var/lib/heartbeat/pengine /var/lib/pengine /etc /etc/default /etc/default/pacemaker /etc/init.d /etc/init.d/pacemaker /usr /usr/sbin /usr/sbin/attrd_updater /usr/sbin/fence_legacy /usr/sbin/stonith_admin /usr/sbin/fence_pcmk /usr/sbin/pacemakerd /usr/lib /usr/lib/pacemaker /usr/lib/pacemaker/cib /usr/lib/pacemaker/lrmd_test /usr/lib/pacemaker/crmd /usr/lib/pacemaker/stonithd /usr/lib/pacemaker/cibmon /usr/lib/pacemaker/attrd /usr/lib/pacemaker/lrmd /usr/lib/pacemaker/stonith-test /usr/lib/pacemaker/pengine /usr/lib/ocf /usr/lib/ocf/resource.d /usr/lib/ocf/resource.d/pacemaker /usr/lib/ocf/resource.d/pacemaker/HealthCPU /usr/lib/ocf/resource.d/pacemaker/HealthSMART /usr/lib/ocf/resource.d/pacemaker/ClusterMon /usr/lib/ocf/resource.d/pacemaker/Stateful /usr/lib/ocf/resource.d/pacemaker/pingd /usr/lib/ocf/resource.d/pacemaker/SysInfo /usr/lib/ocf/resource.d/pacemaker/ping /usr/lib/ocf/resource.d/pacemaker/o2cb /usr/lib/ocf/resource.d/pacemaker/controld /usr/lib/ocf/resource.d/pacemaker/SystemHealth /usr/lib/ocf/resource.d/pacemaker/Dummy /usr/lib/python2.7 /usr/lib/python2.7/dist-packages /usr/lib/python2.7/dist-packages/cts /usr/lib/heartbeat /usr/lib/python2.6 /usr/lib/python2.6/dist-packages /usr/lib/python2.6/dist-packages/cts /usr/share /usr/share/pacemaker /usr/share/pacemaker/upgrade-1.3.xsl /usr/share/pacemaker/pacemaker.rng /usr/share/pacemaker/constraints.rng /usr/share/pacemaker/resources-1.2.rng /usr/share/pacemaker/constraints-1.0.rng /usr/share/pacemaker/cib-1.2.rng /usr/share/pacemaker/pacemaker-1.0.rng /usr/share/pacemaker/nodes-1.0.rng /usr/share/pacemaker/crm.dtd /usr/share/pacemaker/pacemaker-2.0.rng /usr/share/pacemaker/cib-1.0.rng /usr/share/pacemaker/report.collector /usr/share/pacemaker/options.rng /usr/share/pacemaker/cib.rng /usr/share/pacemaker/pacemaker-1.3.rng /usr/share/pacemaker/acls-2.0.rng /usr/share/pacemaker/rule.rng /usr/share/pacemaker/constraints-1.2.rng /usr/share/pacemaker/crm-transitional.dtd /usr/share/pacemaker/score.rng /usr/share/pacemaker/resources-1.3.rng /usr/share/pacemaker/nodes.rng /usr/share/pacemaker/nvset-1.3.rng /usr/share/pacemaker/tags-1.3.rng /usr/share/pacemaker/status.rng /usr/share/pacemaker/constraints-next.rng /usr/share/pacemaker/resources-1.0.rng /usr/share/pacemaker/pacemaker-cib.rng /usr/share/pacemaker/report.common /usr/share/pacemaker/acls-1.2.rng /usr/share/pacemaker/upgrade06.xsl /usr/share/pacemaker/nvset.rng /usr/share/pacemaker/pacemaker-1.2.rng /usr/share/pacemaker/options-1.0.rng /usr/share/pacemaker/nodes-1.3.rng /usr/share/pacemaker/fencing-1.2.rng /usr/share/pacemaker/nodes-1.2.rng /usr/share/pacemaker/versions.rng /usr/share/pacemaker/status-1.0.rng /usr/share/pacemaker/resources.rng /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/pacemaker /usr/share/pyshared /usr/share/pyshared/cts /usr/share/pyshared/cts/cib_xml.py /usr/share/pyshared/cts/CM_ais.py /usr/share/pyshared/cts/CTSaudits.py /usr/share/pyshared/cts/CTS.py /usr/share/pyshared/cts/CTStests.py /usr/share/pyshared/cts/init.py /usr/share/pyshared/cts/CIB.py /usr/share/pyshared/cts/CTSscenarios.py /usr/share/pyshared/cts/CTSvars.py /usr/share/pyshared/cts/CM_lha.py /usr/share/man /usr/share/man/man7 /usr/share/man/man7/ocf_pacemaker_HealthSMART.7.gz /usr/share/man/man7/ocf_pacemaker_Dummy.7.gz /usr/share/man/man7/ocf_pacemaker_o2cb.7.gz /usr/share/man/man7/ocf_pacemaker_controld.7.gz /usr/share/man/man7/ocf_pacemaker_ping.7.gz /usr/share/man/man7/ocf_pacemaker_SystemHealth.7.gz /usr/share/man/man7/ocf_pacemaker_Stateful.7.gz /usr/share/man/man7/ocf_pacemaker_HealthCPU.7.gz /usr/share/man/man7/ocf_pacemaker_pingd.7.gz /usr/share/man/man7/ocf_pacemaker_SysInfo.7.gz /usr/share/man/man7/ocf_pacemaker_ClusterMon.7.gz /usr/share/man/man7/stonithd.7.gz /usr/share/man/man7/crmd.7.gz /usr/share/man/man7/pengine.7.gz /usr/share/man/man8 /usr/share/man/man8/pacemakerd.8.gz /usr/share/man/man8/fence_legacy.8.gz /usr/share/man/man8/stonith_admin.8.gz /usr/share/man/man8/fence_pcmk.8.gz /usr/share/man/man8/attrd_updater.8.gz /usr/share/snmp /usr/share/snmp/mibs /usr/share/snmp/mibs/PCMK-MIB.txt /usr/share/doc /usr/share/doc/pacemaker /usr/share/doc/pacemaker/README.hb2openais.gz /usr/share/doc/pacemaker/AUTHORS /usr/share/doc/pacemaker/crm_fencing.txt.gz /usr/share/doc/pacemaker/changelog.gz /usr/share/doc/pacemaker/changelog.Debian.gz /usr/share/doc/pacemaker/acls.html /usr/share/doc/pacemaker/acls.txt.gz /usr/share/doc/pacemaker/copyright /usr/share/doc/pacemaker/crm_fencing.html /usr/lib/python2.7/dist-packages/cts/cib_xml.py /usr/lib/python2.7/dist-packages/cts/CM_ais.py /usr/lib/python2.7/dist-packages/cts/CTSaudits.py /usr/lib/python2.7/dist-packages/cts/CTS.py /usr/lib/python2.7/dist-packages/cts/CTStests.py /usr/lib/python2.7/dist-packages/cts/init.py /usr/lib/python2.7/dist-packages/cts/CIB.py /usr/lib/python2.7/dist-packages/cts/CTSscenarios.py /usr/lib/python2.7/dist-packages/cts/CTSvars.py /usr/lib/python2.7/dist-packages/cts/CM_lha.py /usr/lib/heartbeat/cib /usr/lib/heartbeat/crmd /usr/lib/heartbeat/stonithd /usr/lib/heartbeat/attrd /usr/lib/heartbeat/pengine /usr/lib/python2.6/dist-packages/cts/cib_xml.py /usr/lib/python2.6/dist-packages/cts/CM_ais.py /usr/lib/python2.6/dist-packages/cts/CTSaudits.py /usr/lib/python2.6/dist-packages/cts/CTS.py /usr/lib/python2.6/dist-packages/cts/CTStests.py /usr/lib/python2.6/dist-packages/cts/init.py /usr/lib/python2.6/dist-packages/cts/CIB.py /usr/lib/python2.6/dist-packages/cts/CTSscenarios.py /usr/lib/python2.6/dist-packages/cts/CTSvars.py /usr/lib/python2.6/dist-packages/cts/CM_lha.py

Although I cannot tell if every file is in the correct place... it looks just the normal debian way for me and pacemaker is running without any problems so far...

zacha81 commented 9 years ago

Here it is:

stat("/usr/local/sbin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/usr/local/bin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/usr/sbin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/usr/bin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/sbin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/bin/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory) stat("/usr/libexec/pacemaker/crmd", 0x7fff92464700) = -1 ENOENT (No such file or directory)

while actually crmd is in /usr/lib/pacemaker

although /etc/crm/crm.conf seems to reflect correct paths:

[path] sharedir = /usr/share/crmsh cache = /var/cache/crm crm_config = /var/lib/pacemaker/cib crm_daemon_dir = /usr/lib/pacemaker crm_daemon_user = hacluster ocf_root = /usr/lib/ocf crm_dtd_dir = /usr/share/pacemaker pe_state_dir = /var/lib/pacemaker/pengine heartbeat_dir = /var/lib/heartbeat hb_delnode = /usr/share/heartbeat/hb_delnode nagios_plugins = /usr/lib/nagios/plugins

as soon as I put a symlink from /usr/libexec/pacemaker -> /usr/lib/pacemaker the errors seem to be gone...

Shouldn't the paths from the conf file be respected?

krig commented 9 years ago

Yes, they should. I'll investigate.

zacha81 commented 9 years ago

I built from the tag 2.2-rc1 regards.

krig commented 9 years ago

I think I found the problem. At certain points in crmsh, crmd is called as a program, and when crmsh looks for what it considers programs, it only checks PATH.

zacha81 commented 9 years ago

sorry but this does not fix the problem this seems to be still kind of different.

patched ra.py and still get:

root@storage-test-d:~# crm ra meta stonith:external/ipmi ERROR: stonithd:metadata: got no meta-data, does this RA exist?

So this does not only apply on crmd but on stonithd too etc.

observation:

remove dir /usr/libexec/pacemaker and error is gone

strace:

stat("/usr/local/sbin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/usr/local/bin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/usr/sbin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/usr/bin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/sbin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/bin/stonithd", 0x7fff170ddd00) = -1 ENOENT (No such file or directory) stat("/usr/lib/pacemaker/stonithd", {st_mode=S_IFREG|0755, st_size=125696, ...}) = 0 access("/usr/lib/pacemaker/stonithd", X_OK) = 0

(without /usr/libexec/pacemaker dir in place)

stat("/usr/local/sbin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/usr/local/bin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/usr/sbin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/usr/bin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/sbin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/bin/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) stat("/usr/libexec/pacemaker/stonithd", 0x7fffa47c7cc0) = -1 ENOENT (No such file or directory) write(2, "\33[31m\33[1mERROR\33(B\33[m: stonithd:m"..., 78ERROR: stonithd:metadata: got no meta-data, does this RA exist?) = 78

(with /usr/libexec/pacemaker dir in place)

So this seems to be a kind of more generic path handling error

krig commented 9 years ago

Oh, well, crmsh doesn't expect stonithd not to be in PATH. But I can fix that, sure.

krig commented 9 years ago

Actually, I am not sure this will be such an easy fix :) There are quite a few executables that crmsh expects to find on the PATH. One option is perhaps to add /usr/lib/pacemaker to PATH when running crmsh?

zacha81 commented 9 years ago

Okay maybe you are misunderstanding me. If there is an empty directory named

/usr/libexec/pacemaker (actually must have been created by an earlier version of pacemaker)

crm shell fails to find the pacemaker binaries because it seems it looks into this path and then gives up.

If I remove the directory (which served for nothing on my system) crmsh is able to find the binaries again without problems- but in general it should search this binaries in the configured paths first I think) and jusk use $PATH if these are unavailable....

This looks the same for crmd and stonithd

regards, Felix

krig commented 9 years ago

Ha! Okay, now I found the problem, and it's a really dumb one. This is what happens when a) testing on systems where the defaults are the same as what you've configured, and b) having the defaults be intelligent enough to figure out "most systems" - ie red hat-style systems also happened to work. Anyway, I'll push a fix. Thanks for your patience!