Hide Forgot
Description of problem: corosync-objctl operations return Error reloading DB 11: $ corosync-objctl | head -n5 cluster.name=STSRHTS4029 cluster.config_version=1 cluster.cman.nodename=marathon-03c1-node01 cluster.cman.cluster_id=52570 cluster.totem.token=3000 $ corosync-objctl cluster.totem.token Error reloading DB 11 $ corosync-objctl -c cluster.testkey Error reloading DB 11 $ getenforce Permissive Version-Release number of selected component (if applicable): corosync-1.4.1-11.el6.x86_64 How reproducible: always Steps to Reproduce: 1. setup cman cluster 2. corosync-objctl -c cluster.testkey 3. Actual results: Error reloading DB 11 on almost any operation (create, update, show...) Expected results: values returned, updated, shown as before Additional info:
Created attachment 647757 [details] Proposed patch - part 1 - Track changes for confdb logging object This makes possible to track changes in logging object (and it's sub objects) for changes, so reload is no longer needed.
Created attachment 647758 [details] Proposed patch - part 2 - Don't call reload on corosync-objctl actions confdb reload is used only for reloading of file, not for triggering changes.
"Unit test": Unit test results: corosync.conf snippet: logging { debug: on .... post patch: [root@rhel6-node2 coro]# corosync -f Apr 24 08:05:14 corosync [MAIN ] Corosync Cluster Engine ('1.4.3-dirty'): started and ready to provide service. .... lots of log .... Apr 24 08:05:14 corosync [TOTEM ] releasing messages up to and including 18 [root@rhel6-node2 ~]# corosync-objctl |grep logging ... logging.debug=on ... notice in the logs (debugging output): Apr 24 08:06:15 corosync [CONFDB] lib_init_fn: conn=0x145ce40 Apr 24 08:06:15 corosync [CONFDB] exit_fn for conn=0x145ce40 [root@rhel6-node2 ~]# corosync-objctl -w logging.debug=off [root@rhel6-node2 ~]# [root@rhel6-node2 ~]# corosync-objctl |grep logging .... logging.debug=off .... and there are no more CONFDB lib_init/exit_fn entries. NOTE I used CONFDB in the example but it applies to all logging. This works with corosync standalone and also with cman.
$ corosync-objctl -n qa.test1=1 $ corosync-objctl -w qa.test1=2 $ corosync-objctl -a | grep -E ^qa qa.test1=2 $ corosync-objctl -d qa.test1 $ corosync-objctl -a | grep -E ^qa qa $ corosync-objctl -d qa $ corosync-objctl -a | grep -E ^qa Operations do work as expected now. Thanks for quick fix. corosync-1.4.1-12.el6.x86_64
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-0497.html