[ https://issues.apache.org/jira/browse/QPID-7442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16103218#comment-16103218 ]
ASF subversion and git services commented on QPID-7442: ------------------------------------------------------- Commit 3e1ddbccb44ee5b9923029234677facf8419e77c in qpid-broker-j's branch refs/heads/master from [~k-wall] [ https://git-wip-us.apache.org/repos/asf?p=qpid-broker-j.git;h=3e1ddbc ] QPID-7781: QPID-7442: [Java Broker] Enhance UI to allow a VH to be added to a VHN that has none. > Deleting a virtualhost leaves itself and the children in the configuration > store > -------------------------------------------------------------------------------- > > Key: QPID-7442 > URL: https://issues.apache.org/jira/browse/QPID-7442 > Project: Qpid > Issue Type: Bug > Components: Java Broker > Reporter: Keith Wall > Priority: Minor > Fix For: qpid-java-broker-7.1.0 > > > If I create a BDB virtualhostnode (for example) with a ProvidedStore, then > delete the VH the configuration entries corresponding to the VH are left > behind in the store. > * If I immediately restart the Broker, the deleted VH reappears. > * If I create a new virtualhost in its place (using REST), the creation is > seemingly successful, but on restart the virtuallhostnode goes into ERROR > state. > {noformat} > 2016-09-29 23:16:27,105 INFO [Broker-Config] (q.m.c.recovery_start) - > [Broker] [vh(/mybdb)/ms(BDBConfigurationStore)] CFG-1004 : Recovery Start > 2016-09-29 23:16:27,121 INFO [Broker-Config] > (o.a.q.s.s.GenericStoreUpgrader) - VirtualHost store has model version 6.1. > Number of record(s) 10 > 2016-09-29 23:16:27,126 INFO [Broker-Config] (q.m.v.created) - [Broker] > VHT-1001 : Created : mybdb > 2016-09-29 23:16:27,129 INFO [Broker-Config] (q.m.v.created) - [Broker] > VHT-1001 : Created : mybdb > 2016-09-29 23:16:27,133 ERROR [Broker-Config] > (o.a.q.s.m.AbstractConfiguredObject) - Failed to open object with name > 'mybdb'. Object will be put into ERROR state. > org.apache.qpid.server.model.AbstractConfiguredObject$DuplicateNameException: > Child of type ProvidedStoreVirtualHostImplWithAccessChecking already exists > with name of mybdb > at > org.apache.qpid.server.model.AbstractConfiguredObject.registerChild(AbstractConfiguredObject.java:2129) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.registerWithParents(AbstractConfiguredObject.java:684) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory$GenericUnresolvedConfiguredObject.resolve(AbstractConfiguredObjectTypeFactory.java:139) > ~[classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObjectTypeFactory$GenericUnresolvedConfiguredObject.resolve(AbstractConfiguredObjectTypeFactory.java:118) > ~[classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer.resolveObjects(GenericRecoverer.java:188) > ~[classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer.performRecover(GenericRecoverer.java:91) > ~[classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer.access$000(GenericRecoverer.java:41) > ~[classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:59) > ~[classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer$1.execute(GenericRecoverer.java:55) > ~[classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:240) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submitWrappedTask(TaskExecutorImpl.java:157) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl.run(TaskExecutorImpl.java:182) > [classes/:na] > at > org.apache.qpid.server.store.GenericRecoverer.recover(GenericRecoverer.java:54) > ~[classes/:na] > at > org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer.recover(VirtualHostStoreUpgraderAndRecoverer.java:615) > ~[classes/:na] > at > org.apache.qpid.server.store.VirtualHostStoreUpgraderAndRecoverer.upgradeAndRecover(VirtualHostStoreUpgraderAndRecoverer.java:594) > ~[classes/:na] > at > org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode.activate(AbstractStandardVirtualHostNode.java:102) > ~[classes/:na] > at > org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode.doActivate(AbstractVirtualHostNode.java:167) > ~[classes/:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.8.0_101] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[na:1.8.0_101] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.8.0_101] > at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] > at > org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1482) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1461) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:1035) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:1029) > [classes/:na] > at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.Futures.addCallback(Futures.java:1322) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.Futures.addCallback(Futures.java:1258) > [guava-18.0.jar:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.doAttainState(AbstractConfiguredObject.java:1028) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.access$300(AbstractConfiguredObject.java:91) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$7.performAction(AbstractConfiguredObject.java:1014) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$7.performAction(AbstractConfiguredObject.java:1006) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.applyToChildren(AbstractConfiguredObject.java:1269) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.doAttainState(AbstractConfiguredObject.java:1005) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.access$300(AbstractConfiguredObject.java:91) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:584) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:571) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:632) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:625) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:240) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submitWrappedTask(TaskExecutorImpl.java:157) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:145) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.doOnConfigThread(AbstractConfiguredObject.java:624) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.openAsync(AbstractConfiguredObject.java:570) > [classes/:na] > at > org.apache.qpid.server.model.AbstractSystemConfig.activate(AbstractSystemConfig.java:237) > [classes/:na] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[na:1.8.0_101] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[na:1.8.0_101] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.8.0_101] > at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101] > at > org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1482) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.attainState(AbstractConfiguredObject.java:1461) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:1035) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$8.onSuccess(AbstractConfiguredObject.java:1029) > [classes/:na] > at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.Futures.addCallback(Futures.java:1322) > [guava-18.0.jar:na] > at > com.google.common.util.concurrent.Futures.addCallback(Futures.java:1258) > [guava-18.0.jar:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.doAttainState(AbstractConfiguredObject.java:1028) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject.access$300(AbstractConfiguredObject.java:91) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:584) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$1.execute(AbstractConfiguredObject.java:571) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:632) > [classes/:na] > at > org.apache.qpid.server.model.AbstractConfiguredObject$2.execute(AbstractConfiguredObject.java:625) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl$TaskLoggingWrapper.execute(TaskExecutorImpl.java:240) > [classes/:na] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper$1.run(TaskExecutorImpl.java:312) > [classes/:na] > at java.security.AccessController.doPrivileged(Native Method) > [na:1.8.0_101] > at javax.security.auth.Subject.doAs(Subject.java:360) [na:1.8.0_101] > at > org.apache.qpid.server.configuration.updater.TaskExecutorImpl$CallableWrapper.call(TaskExecutorImpl.java:305) > [classes/:na] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_101] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_101] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_101] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101] > {noformat} > As a user, the only choice I have to recover is to delete the VHN. This > would be inconvenient, especially if HA were in use. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org