Bug 876908 - corosync-objctl operations return Error reloading DB 11
corosync-objctl operations return Error reloading DB 11
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: corosync (Show other bugs)
6.4
Unspecified Unspecified
urgent Severity urgent
: rc
: ---
Assigned To: Jan Friesse
Cluster QE
: Regression
Depends On:
Blocks: 881827
  Show dependency treegraph
 
Reported: 2012-11-15 04:27 EST by Jaroslav Kortus
Modified: 2014-07-01 08:04 EDT (History)
2 users (show)

See Also:
Fixed In Version: corosync-1.4.1-12.el6
Doc Type: Bug Fix
Doc Text:
Cause: Running corosync-objctl with parameter Consequence: Error reloading DB 11. Reloading was added by mistake to fix bz#773720. Result WAS to trigger change, but also to trigger reload of configuration file. This is ok for corosync/openais itself, because no plugin failed. Sadly, with cman preconfig plugin loaded, this results in error (because version number of file was not changed). Fix: Remove reload and properly handle change of logging object in confdb. Result: No longer "Error reloading DB 11.", but it's perfectly possible to change logging level in runtime.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-21 02:51:11 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Proposed patch - part 1 - Track changes for confdb logging object (3.96 KB, patch)
2012-11-19 08:35 EST, Jan Friesse
no flags Details | Diff
Proposed patch - part 2 - Don't call reload on corosync-objctl actions (1.46 KB, patch)
2012-11-19 08:36 EST, Jan Friesse
no flags Details | Diff

  None (edit)
Description Jaroslav Kortus 2012-11-15 04:27:52 EST
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:
Comment 1 Jan Friesse 2012-11-19 08:35:53 EST
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.
Comment 2 Jan Friesse 2012-11-19 08:36:50 EST
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.
Comment 3 Jan Friesse 2012-11-19 08:42:38 EST
"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.
Comment 7 Jaroslav Kortus 2012-11-29 12:48:37 EST
$ 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
Comment 9 errata-xmlrpc 2013-02-21 02:51:11 EST
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

Note You need to log in before you can comment on or make changes to this bug.