Alex Rudyy created QPID-8236:
--------------------------------
Summary: [Broker-J] Changing of group name in BDB HA virtual host
node should be disallowed
Key: QPID-8236
URL: https://issues.apache.org/jira/browse/QPID-8236
Project: Qpid
Issue Type: Bug
Components: Broker-J
Affects Versions: qpid-java-broker-7.0.6, qpid-java-6.0.8, 0.32,
qpid-java-6.1.6
Reporter: Alex Rudyy
Fix For: qpid-java-6.1.7, qpid-java-broker-7.1.0,
qpid-java-broker-7.0.7
The group name of BDB HA Virtual Host Node can be changed using management
interfaces, for example REST API. However, the change of group name is not
reflected in the underlying BDB JE infrastructure. In fact, the change of group
name is unsupported by BDB JE. The only way the group can be changed is by
resettingĀ the group information using BDB JE utility {{DbResetRepGroup}} which
resets the group to a single node.
The Qpid Broker should not allow to change group name attribute in BDB HA
Virtual Host node via management API.
If group is changed, on next broker restart the impacted {{VHN}} fails to start
with the following error logged into broker logs:
{noformat}
ERROR [qtp699327636-161] (o.a.q.s.m.p.f.ExceptionHandlingFilter) - Unexpected
exception in servlet '/api/latest/virtualhostnode/node1':
java.lang.RuntimeException: Unexpected exception on environment creation
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironmentInSeparateThread(ReplicatedEnvironmentFacade.java:1578)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironment(ReplicatedEnvironmentFacade.java:1526)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.<init>(ReplicatedEnvironmentFacade.java:288)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeFactory.createEnvironmentFacade(ReplicatedEnvironmentFacadeFactory.java:130)
at
org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore.init(BDBConfigurationStore.java:120)
at
org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNodeImpl.activate(BDBHAVirtualHostNodeImpl.java:338)
at
org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.doActivate(AbstractVirtualHostNode.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1526)
at
org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1505)
at
org.apache.qpid.server.model.AbstractConfiguredObject.attainStateIfOpenedOrReopenFailed(AbstractConfiguredObject.java:1489)
at
org.apache.qpid.server.model.AbstractConfiguredObject.access$1700(AbstractConfiguredObject.java:97)
at
org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1716)
at
org.apache.qpid.server.model.AbstractConfiguredObject$15.execute(AbstractConfiguredObject.java:1678)
at
org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:639)
at
org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:632)
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:248)
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:320)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:360)
at
org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:313)
at
com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:111)
at
com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58)
at
com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.qpid.server.bytebuffer.QpidByteBufferFactory.lambda$null$0(QpidByteBufferFactory.java:464)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 7.4.5) The
argument: ha2 does not match the expected group name: ha UNEXPECTED_STATE:
Unexpected internal state, may have side effects.
at
com.sleepycat.je.EnvironmentFailureException.unexpectedState(EnvironmentFailureException.java:428)
at com.sleepycat.je.rep.impl.RepGroupDB.fetchGroup(RepGroupDB.java:369)
at com.sleepycat.je.rep.impl.RepGroupDB.getGroup(RepGroupDB.java:228)
at com.sleepycat.je.rep.impl.RepGroupDB.getGroup(RepGroupDB.java:261)
at
com.sleepycat.je.rep.impl.node.RepNode.refreshCachedGroup(RepNode.java:928)
at com.sleepycat.je.rep.impl.node.RepNode.findMaster(RepNode.java:1272)
at com.sleepycat.je.rep.impl.node.RepNode.startup(RepNode.java:897)
at com.sleepycat.je.rep.impl.node.RepNode.joinGroup(RepNode.java:2157)
at com.sleepycat.je.rep.impl.RepImpl.joinGroup(RepImpl.java:610)
at
com.sleepycat.je.rep.ReplicatedEnvironment.joinGroup(ReplicatedEnvironment.java:560)
at
com.sleepycat.je.rep.ReplicatedEnvironment.<init>(ReplicatedEnvironment.java:621)
at
com.sleepycat.je.rep.ReplicatedEnvironment.<init>(ReplicatedEnvironment.java:466)
at
com.sleepycat.je.rep.ReplicatedEnvironment.<init>(ReplicatedEnvironment.java:540)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.createEnvironment(ReplicatedEnvironmentFacade.java:1594)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.access$1700(ReplicatedEnvironmentFacade.java:87)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade$14.call(ReplicatedEnvironmentFacade.java:1542)
at
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade$14.call(ReplicatedEnvironmentFacade.java:1538)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 common frames omitted
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]