[
https://issues.apache.org/jira/browse/CLOUDSTACK-8763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14904391#comment-14904391
]
ASF subversion and git services commented on CLOUDSTACK-8763:
-------------------------------------------------------------
Commit a0f8f56a5dd3a323a72eb2a145d64cb1b5abea49 in cloudstack's branch
refs/heads/master from [~widodh]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=a0f8f56 ]
Merge pull request #845 from borisroman/CLOUDSTACK-8763
[4.6][BLOCKER]CLOUDSTACK-8763: Resolved POD/ZONE deletion failure.Instead of
having both checkIfPodIsDeletable() and checkIfZoneIsDeletable have there own
SQL query, I've refactored them so they use DAO SQL Queries.
This resolves the SQL Exception thrown by both classes.
Test to confirm working order:
- deploy ACS
- Add zones / pods. -> Try to delete without resources. -> Direct success.
- Add resources to zones / pods. -> Try to delete with resources in the pod /
zone. -> Correct exception thrown. (Error message is why it cannot remove the
zone / pod. IE: There is still a hosts or vm or .... )
* pr/845:
Added unit tests for checkIfPodIsDeletable() and checkIfZoneIsDeletable().
Updated Dao classes with correct field names.
Refactored checkIfZoneIsDeletable().
Added findByDc(long dcId) to VolumeDao and VolumeDaoImpl.
Added countIPs(long dcId, boolean onlyCountAllocated) to IPAddressDao and
IPAddressDaoImpl.
Added countIPs(long dcId, boolean onlyCountAllocated) to
DataCenterIpAddressDao and DataCenterIpAddressDaoImpl.
Refactored checkIfPodIsDeletable().
Added findByPodId(Long podId) to HostDao and HostDaoImpl.
Signed-off-by: Wido den Hollander <[email protected]>
> Deleting a POD/Zone always fails due to a SQLException
> ------------------------------------------------------
>
> Key: CLOUDSTACK-8763
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8763
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.6.0
> Reporter: Remi Bergsma
> Assignee: Boris Schrijver
> Priority: Blocker
>
> The Management Server failed to detect if pod is deletable. Please contact
> Cloud Support.
> This also means Marvin cannot clean up after a test.
> 2015-08-21 10:07:10,822 DEBUG [c.c.a.ApiServlet]
> (1226927357@qtp-701028225-5:ctx-0000a82e) ===START=== 192.168.22.240 -- GET
> command=deletePod&id=358df0b2-0bc0-480b-81a8-0675c59a808e&response=json&_=1440151630775
> 2015-08-21 10:07:10,826 ERROR [c.c.a.ApiServer]
> (1226927357@qtp-701028225-5:ctx-0000a82e ctx-1c95970d) unhandled exception
> executing api command: [Ljava.lang.String;@3cc57321
> com.cloud.utils.exception.CloudRuntimeException: The Management Server failed
> to detect if pod is deletable. Please contact Cloud Support.
> at
> com.cloud.configuration.ConfigurationManagerImpl.checkIfPodIsDeletable(ConfigurationManagerImpl.java:954)
> at
> com.cloud.configuration.ConfigurationManagerImpl.deletePod(ConfigurationManagerImpl.java:1032)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
> at
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
> at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
> at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
> at com.sun.proxy.$Proxy110.deletePod(Unknown Source)
> at
> org.apache.cloudstack.api.command.admin.pod.DeletePodCmd.execute(DeletePodCmd.java:70)
> at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:141)
> at com.cloud.api.ApiServer.queueCommand(ApiServer.java:704)
> at com.cloud.api.ApiServer.handleRequest(ApiServer.java:529)
> at
> com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:296)
> at com.cloud.api.ApiServlet$1.run(ApiServlet.java:127)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
> at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:124)
> at com.cloud.api.ApiServlet.doGet(ApiServlet.java:86)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
> at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:326)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> 2015-08-21 10:07:10,827 DEBUG [c.c.a.ApiServlet]
> (1226927357@qtp-701028225-5:ctx-0000a82e ctx-1c95970d) ===END===
> 192.168.22.240 -- GET
> command=deletePod&id=358df0b2-0bc0-480b-81a8-0675c59a808e&response=json&_=1440151630775
> 2015-08-21 10:07:11,540 INFO [o.a.c.f.j.i.AsyncJobManagerImpl]
> (AsyncJobMgr-Heartbeat-1:ctx-37b4fb95) Begin cleanup expired async-jobs
> Same for deleting a zone:
> (local) � > delete zone id=47b7f0d0-7018-419a-8e44-99ed022f0de4
> Error 530: The Management Server failed to detect if zone is deletable.
> Please contact Cloud Support.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)