Unable to depoly a vm with the default centos template on xenserver 8.4
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.4k
- Avg merge
- 6d 19h
- Merged PRs (30d)
- 32
Description
### problem
The long description of your problem
### versions
ACS 4.22
Xenserver 8.4
### The steps to reproduce the bug
1. Have a cloudstack environment with xenserver 8.4 hypervisor
2. Deploy a vm with default centos template
CentOS 5.6(64-bit) no GUI (XenServer)
http://download.cloudstack.org/templates/builtin/centos56-x86_64.vhd.bz2
3. Deployment fails with the following exception
Logs
```
2026-08-05 07:28:21,240 DEBUG [c.c.h.x.r.w.x.CitrixStartCommandWrapper] (DirectAgent-71:[ctx-79a585c0]) (logid:5a107745) 1. The VM i-2-63-VM is in Starting state.
2026-08-05 07:28:21,242 WARN [c.c.h.x.r.w.x.CitrixStartCommandWrapper] (DirectAgent-71:[ctx-79a585c0]) (logid:5a107745) Catch Exception: class com.cloud.utils.exception.CloudRuntimeException due to com.cloud.utils.exception.CloudRuntimeException: Cannot find Template CentOS 7 on XenServer host com.cloud.utils.exception.CloudRuntimeException: Cannot find Template CentOS 7 on XenServer host
at com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.createVmFromTemplate(CitrixResourceBase.java:1300)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixStartCommandWrapper.execute(CitrixStartCommandWrapper.java:93)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixStartCommandWrapper.execute(CitrixStartCommandWrapper.java:57)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixRequestWrapper.execute(CitrixRequestWrapper.java:122)
at com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.executeRequest(CitrixResourceBase.java:1780)
at com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:306)
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
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 org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2026-08-05 07:28:21,242 WARN [c.c.h.x.r.Xenserver84Resource] (DirectAgent-71:[ctx-79a585c0]) (logid:5a107745) Unable to start i-2-63-VM due to com.cloud.utils.exception.CloudRuntimeException: Cannot find Template CentOS 7 on XenServer host
at com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.createVmFromTemplate(CitrixResourceBase.java:1300)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixStartCommandWrapper.execute(CitrixStartCommandWrapper.java:93)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixStartCommandWrapper.execute(CitrixStartCommandWrapper.java:57)
at com.cloud.hypervisor.xenserver.resource.wrapper.xenbase.CitrixRequestWrapper.execute(CitrixRequestWrapper.java:122)
at com.cloud.hypervisor.xenserver.resource.CitrixResourceBase.executeRequest(CitrixResourceBase.java:1780)
at com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:306)
at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
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 org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
```
4. Xenceter 8.4 says Centos 7 is deprecated
### What to do about it?
Cloudstack should map the correct guest os in case the host is xenserver 8.4
or go about replacing the templated with a newer version
https://github.com/apache/cloudstack/discussions/13797
Contributor guide
Research direction
Start at CitrixResourceBase.java:1300 and the Xenserver84Resource warning path, then trace the deployment from CitrixStartCommandWrapper.java. Reproduce deployment of the default CentOS template on XenServer 8.4 and inspect how the guest OS and template are selected. Done means the supported CentOS template deploys successfully without the "Cannot find Template CentOS 7" failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- cloud, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100