I've setup ACS 4.15 and created the first zone on it using the wizard through primate. The zone is enabled and isn't showing any issues in the UI. I can see two system vm's running (secondarystoragevm and consoleproxy) and can SSH into the VM's from the compute node. However when I try to add a template through the UI I get the following error:
There is no secondary storage VM for downloading template to image store LXC_SEC_STOR1 And on the controller I can see the corresponding log entries when I try to submit the new template: 2021-06-15 22:13:35,884 DEBUG [c.c.a.ApiServlet] (qtp1644231115-348:ctx-aab81632) (logid:ac328268) ===START=== 172.16.44.18 -- GET name=Ubuntu+20.04&displaytext=Ubuntu+20.04+(Focal)+64-bit&zoneid=9f6f5b49-0e12-4af4-a13b-2ace6c47de43&hypervisor=LXC&format=TAR&ostypeid=aa18f3ad-cd73-11eb-b1da-5254008f72d5&requireshvm=true&command=getUploadParamsForTemplate&response=json 2021-06-15 22:13:35,924 DEBUG [c.c.a.ApiServer] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) CIDRs from which account 'Acct[f8d6949d-cd74-11eb-b1da-5254008f72d5-admin]' is allowed to perform API calls: 0.0.0.0/0,::/0 2021-06-15 22:13:36,093 DEBUG [o.a.c.s.i.TemplateDataFactoryImpl] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) template 203 is not in store:1, type:Image 2021-06-15 22:13:36,138 DEBUG [o.a.c.s.i.TemplateDataFactoryImpl] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) template 203 is already in store:1, type:Image 2021-06-15 22:13:36,142 WARN [c.c.t.HypervisorTemplateAdapter] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) There is no secondary storage VM for downloading template to image store LXC_SEC_STOR1 2021-06-15 22:13:36,146 DEBUG [c.c.u.d.T.Transaction] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) Rolling back the transaction: Time = 98 Name = qtp1644231115-348; called by -TransactionLegacy.rollback:888-TransactionLegacy.removeUpTo:831-TransactionLegacy.close:655-Transaction.execute:38-Transaction.execute:47-HypervisorTemplateAdapter.createTemplateForPostUpload:298-TemplateManagerImpl.registerPostUploadInternal:361-TemplateManagerImpl.registerTemplateForPostUpload:423-NativeMethodAccessorImpl.invoke0:-2-NativeMethodAccessorImpl.invoke:62-DelegatingMethodAccessorImpl.invoke:43-Method.invoke:566 2021-06-15 22:13:36,229 ERROR [c.c.a.ApiServer] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) unhandled exception executing api command: [Ljava.lang.String;@2ad13bf5 com.cloud.utils.exception.CloudRuntimeException: There is no secondary storage VM for downloading template to image store LXC_SEC_STOR1 at com.cloud.template.HypervisorTemplateAdapter$1.doInTransaction(HypervisorTemplateAdapter.java:363) at com.cloud.template.HypervisorTemplateAdapter$1.doInTransaction(HypervisorTemplateAdapter.java:298) at com.cloud.utils.db.Transaction$2.doInTransaction(Transaction.java:50) at com.cloud.utils.db.Transaction.execute(Transaction.java:40) at com.cloud.utils.db.Transaction.execute(Transaction.java:47) at com.cloud.template.HypervisorTemplateAdapter.createTemplateForPostUpload(HypervisorTemplateAdapter.java:298) at com.cloud.template.TemplateManagerImpl.registerPostUploadInternal(TemplateManagerImpl.java:361) at com.cloud.template.TemplateManagerImpl.registerTemplateForPostUpload(TemplateManagerImpl.java:423) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) at com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy198.registerTemplateForPostUpload(Unknown Source) at org.apache.cloudstack.api.command.user.template.GetUploadParamsForTemplateCmd.execute(GetUploadParamsForTemplateCmd.java:160) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:156) at com.cloud.api.ApiServer.queueCommand(ApiServer.java:764) at com.cloud.api.ApiServer.handleRequest(ApiServer.java:588) at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:321) at com.cloud.api.ApiServlet$1.run(ApiServlet.java:134) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:55) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:102) at org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:52) at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:131) at com.cloud.api.ApiServlet.doGet(ApiServlet.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:645) at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) at org.eclipse.jetty.servlet.ServletHolder$NotAsyncServlet.service(ServletHolder.java:1386) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:767) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:500) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) at java.base/java.lang.Thread.run(Thread.java:829) 2021-06-15 22:13:36,242 DEBUG [c.c.a.ApiServlet] (qtp1644231115-348:ctx-aab81632 ctx-da7281d3) (logid:ac328268) ===END=== 172.16.44.18 -- GET name=Ubuntu+20.04&displaytext=Ubuntu+20.04+(Focal)+64-bit&zoneid=9f6f5b49-0e12-4af4-a13b-2ace6c47de43&hypervisor=LXC&format=TAR&ostypeid=aa18f3ad-cd73-11eb-b1da-5254008f72d5&requireshvm=true&command=getUploadParamsForTemplate&response=json Am I missing something obvious? I did also see this on the controller. This message repeats exactly every 30 seconds: 2021-06-15 22:21:07,646 DEBUG [o.a.c.s.SecondaryStorageManagerImpl] (secstorage-1:ctx-d87a688f) (logid:ab3dd6e6) Zone 1 is ready to launch secondary storage VM 2021-06-15 22:21:08,000 DEBUG [c.c.c.ConsoleProxyManagerImpl] (consoleproxy-1:ctx-5617882e) (logid:fdcc51e9) Zone 1 is ready to launch console proxy So the VM is started and I can SSH into this, but is the VM itself just not ready? How do you make it ready? -- Thanks, Joshua Schaeffer