summer-abacus opened a new issue, #12630:
URL: https://github.com/apache/cloudstack/issues/12630
### problem
The listRouters API-call always returns healthcheckfailed false, even if the
healthcheck fails.
Alert in CloudStack UI:
```
Health checks failed: 1 failing checks on router r-8-VM /
c0c6a15f-3ad8-4936-ba6e-abe802ddba16
```
Error in EventQueue
```
{"eventDateTime":"2026-02-09 14:01:22 +0100","subject":"Health checks
failed: 1 failing checks on router r-8-VM /
c0c6a15f-3ad8-4936-ba6e-abe802ddba16","dataCenterId":"a8f95837-c05c-4a97-b100-53f87de8df24","event":"ALERT.SERVICE.DOMAINROUTER","body":"Health
checks failed: 1 failing checks on router r-8-VM /
c0c6a15f-3ad8-4936-ba6e-abe802ddba16","podId":"090ccb90-9411-4bab-bb0c-f5ab61e34ebb"}
{"eventDateTime":"2026-02-09 14:01:22
+0100","entityuuid":"c0c6a15f-3ad8-4936-ba6e-abe802ddba16","description":"Router
r-8-VM / c0c6a15f-3ad8-4936-ba6e-abe802ddba16 has failing checks:
router_version_check.py","event":"ROUTER.HEALTH.CHECKS","user":"c302beae-cb9d-11f0-a957-fa163ed04c4b","account":"c302a9b2-cb9d-11f0-a957-fa163ed04c4b","entity":"DomainRouter","status":"Completed"}
```
API call via cmk
```
(cloudstackmsu) 🐄 > list routers name=r-8-VM
filter=name,hostname,healthchecksfailed,healthcheckresults,state,
fetchhealthcheckresults=true listall=true
router:
count = 1
+--------+----------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
| NAME | HOSTNAME | HEALTHCHECKSFAILED |
HEALTHCHECKRESULTS
| STATE |
+--------+----------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
| r-8-VM | srv1-214 | false |
[{"checkname":"connectivity.test","checktype":"basic","details":"Failed to
fetch results with details: java.io.IOException: Stream closed\n\tat
| Running |
| | | |
java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:168)\n\tat
java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:334)\n\tat
| |
| | | |
java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)\n\tat
java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:330)\n\tat
| |
| | | |
java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:190)\n\tat
java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)\n\tat
| |
| | | |
java.base/java.io.BufferedReader.fill(BufferedReader.java:162)\n\tat
java.base/java.io.BufferedReader.readLine(BufferedReader.java:329)\n\tat
| |
| | | |
java.base/java.io.BufferedReader.readLine(BufferedReader.java:396)\n\tat
com.cloud.utils.script.OutputInterpreter.processError(OutputInterpreter.java:41)\n\tat
| |
| | | |
com.cloud.utils.script.Script.execute(Script.java:336)\n\tat
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeInVR(LibvirtComputingResource.java:632)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeInVR(LibvirtComputingResource.java:620)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.checkRouterFileSystem(VirtualRoutingResource.java:431)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.execute(VirtualRoutingResource.java:403)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.executeQueryCommand(VirtualRoutingResource.java:239)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.executeRequest(VirtualRoutingResource.java:130)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtNetworkElementCommandWrapper.execute(LibvirtNetworkElementCommandWrapper.java:35)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtNetworkElementCommandWrapper.execute(LibvirtNetworkElementCommandWrapper.java:29)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:2280)\n\tat
| |
| | | |
com.cloud.agent.Agent.processRequest(Agent.java:813)\n\tat
com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1295)\n\tat
| |
| | | |
com.cloud.utils.nio.Task.call(Task.java:83)\n\tat
com.cloud.utils.nio.Task.call(Task.java:29)\n\tat
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat
| |
| | | |
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat
| |
| | | |
java.base/java.lang.Thread.run(Thread.java:840)\n","lastupdated":"2026-02-11T13:01:46+0100","status":"FAILED","success":false},{"checkname":"filesystem.writable.test","checktype":"basic","details":"Failed
| |
| | | | to fetch results with details:
java.io.IOException: Stream closed\n\tat
java.base/java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:168)\n\tat
| |
| | | |
java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:334)\n\tat
java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:287)\n\tat
| |
| | | |
java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:330)\n\tat
java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:190)\n\tat
| |
| | | |
java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)\n\tat
java.base/java.io.BufferedReader.fill(BufferedReader.java:162)\n\tat
| |
| | | |
java.base/java.io.BufferedReader.readLine(BufferedReader.java:329)\n\tat
java.base/java.io.BufferedReader.readLine(BufferedReader.java:396)\n\tat
| |
| | | |
com.cloud.utils.script.OutputInterpreter.processError(OutputInterpreter.java:41)\n\tat
com.cloud.utils.script.Script.execute(Script.java:336)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeInVR(LibvirtComputingResource.java:632)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeInVR(LibvirtComputingResource.java:620)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.checkRouterFileSystem(VirtualRoutingResource.java:431)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.execute(VirtualRoutingResource.java:403)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.executeQueryCommand(VirtualRoutingResource.java:239)\n\tat
| |
| | | |
com.cloud.agent.resource.virtualnetwork.VirtualRoutingResource.executeRequest(VirtualRoutingResource.java:130)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtNetworkElementCommandWrapper.execute(LibvirtNetworkElementCommandWrapper.java:35)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtNetworkElementCommandWrapper.execute(LibvirtNetworkElementCommandWrapper.java:29)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)\n\tat
| |
| | | |
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:2280)\n\tat
| |
| | | |
com.cloud.agent.Agent.processRequest(Agent.java:813)\n\tat
com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1295)\n\tat
| |
| | | |
com.cloud.utils.nio.Task.call(Task.java:83)\n\tat
com.cloud.utils.nio.Task.call(Task.java:29)\n\tat
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat
| |
| | | |
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\n\tat
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\n\tat
| |
| | | |
java.base/java.lang.Thread.run(Thread.java:840)\n","lastupdated":"2026-02-11T13:01:46+0100","status":"UNKNOWN","success":false}]
|
|
+--------+----------+--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------+
```
Expected result: healthcheckfailed=true instead of healthcheckfailed=false
### versions
ACS 4.22.0
### The steps to reproduce the bug
1. ssh into one VR VM
2. shutdown the interfaces e.g. `ifdown eth0 ; ifdown eth1`
3. Wait about 10 minutes
4. Check Alerts in the UI
5. Check `cmk list routers
filter=name,hostname,healthchecksfailed,healthcheckresults,state,
fetchhealthcheckresults=true listall=true`
### What to do about it?
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]