Bug 876908 - corosync-objctl operations return Error reloading DB 11
Summary: corosync-objctl operations return Error reloading DB 11
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: corosync
Version: 6.4
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: rc
: ---
Assignee: Jan Friesse
QA Contact: Cluster QE
URL:
Whiteboard:
Depends On:
Blocks: 881827
TreeView+ depends on / blocked
 
Reported: 2012-11-15 09:27 UTC by Jaroslav Kortus
Modified: 2017-02-07 13:18 UTC (History)
2 users (show)

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.
Clone Of:
Environment:
Last Closed: 2013-02-21 07:51:11 UTC
Target Upstream Version:


Attachments (Terms of Use)
Proposed patch - part 1 - Track changes for confdb logging object (3.96 KB, patch)
2012-11-19 13:35 UTC, 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 13:36 UTC, Jan Friesse
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:0497 normal SHIPPED_LIVE corosync bug fix and enhancement update 2013-02-20 21:18:24 UTC

Description Jaroslav Kortus 2012-11-15 09:27:52 UTC
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 13:35:53 UTC
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 13:36:50 UTC
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 13:42:38 UTC
"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 17:48:37 UTC
$ 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 07:51:11 UTC
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.