I'm wondering if the upgraded agent is treated as a new host. This was
literally built fresh, new zone, added one host, upgraded to 4.2, break...
Is storage plugin's initialize called every time a host connects, or should
it only be called for new agents/hosts?
On Sep 23, 2013 12:43 PM, "edison su (JIRA)" <j...@apache.org> wrote:

>
>     [
> https://issues.apache.org/jira/browse/CLOUDSTACK-4725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13775548#comment-13775548]
>
> edison su commented on CLOUDSTACK-4725:
> ---------------------------------------
>
> You may need to take a look at your DB, to find out, where the duplicated
> uuid coming from.
> From the code:StorageManagerImpl->createLocalStorage:
>  StoragePoolVO pool =
> _storagePoolDao.findPoolByHostPath(host.getDataCenterId(), host.getPodId(),
> pInfo.getHost(), pInfo.getHostPath(),
>                     pInfo.getUuid());
>
>  if (pool == null) {
>    create a new local storage, which cause exception as you met.
> } else {
>    just add the existing pool
> }
>
> It's possible, that there is a duplicated local storage with the same
> uuid, but the host ip address, or pod id or datacenter id is changed?
>
> > KVM agent fails to join if local pool is already registered
> > -----------------------------------------------------------
> >
> >                 Key: CLOUDSTACK-4725
> >                 URL:
> https://issues.apache.org/jira/browse/CLOUDSTACK-4725
> >             Project: CloudStack
> >          Issue Type: Bug
> >      Security Level: Public(Anyone can view this level - this is the
> default.)
> >          Components: KVM
> >    Affects Versions: 4.2.0
> >            Reporter: Marcus Sorensen
> >            Assignee: edison su
> >            Priority: Critical
> >             Fix For: 4.2.1
> >
> >
> > "Another active pool with the same uuid already exists"
> > This might be a regression, I believe we used to catch this case and/or
> check libvirt to see if pool was already established and just return if it
> is already there. Or maybe we only do that for non-local.
> > 2013-09-22 23:42:35,265 DEBUG [agent.manager.AgentManagerImpl]
> (AgentConnectTaskPool-396:null) Sending Connect to listener:
> LocalStoragePoolListener
> > 2013-09-22 23:42:35,266 DEBUG
> [datastore.lifecycle.CloudStackPrimaryDataStoreLifeCycleImpl]
> (AgentConnectTaskPool-396:null) createPool Params @ scheme - Filesystem
> storageHost - 172.17.10.10 hostPath - /var/lib/libvirt/images port - -1
> > 2013-09-22 23:42:35,267 DEBUG
> [datastore.lifecycle.CloudStackPrimaryDataStoreLifeCycleImpl]
> (AgentConnectTaskPool-396:null) Another active pool with the same uuid
> already exists
> > 2013-09-22 23:42:35,267 WARN  [cloud.storage.StorageManagerImpl]
> (AgentConnectTaskPool-396:null) Unable to setup the local storage pool for
> Host[-1-Routing]
> > com.cloud.utils.exception.CloudRuntimeException: Another active pool
> with the same uuid already exists
> >       at
> org.apache.cloudstack.storage.datastore.lifecycle.CloudStackPrimaryDataStoreLifeCycleImpl.initialize(CloudStackPrimaryDataStoreLifeCycleImpl.java:319)
> >       at
> com.cloud.storage.StorageManagerImpl.createLocalStorage(StorageManagerImpl.java:647)
> >       at
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
> >       at
> com.cloud.storage.LocalStoragePoolListener.processConnect(LocalStoragePoolListener.java:86)
> >       at
> com.cloud.agent.manager.AgentManagerImpl.notifyMonitorsOfConnection(AgentManagerImpl.java:587)
> >       at
> com.cloud.agent.manager.AgentManagerImpl.handleConnectedAgent(AgentManagerImpl.java:1085)
> >       at
> com.cloud.agent.manager.AgentManagerImpl.access$100(AgentManagerImpl.java:144)
> >       at
> com.cloud.agent.manager.AgentManagerImpl$HandleAgentConnectTask.run(AgentManagerImpl.java:1160)
> >       at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >       at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >       at java.lang.Thread.run(Thread.java:724)
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA
> administrators
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>

Reply via email to