"Managing Depots is temporarily unavailable. Could not retrieve health status for Auto Deploy and Image Builder services" error in AutoDeploy Software Depots page in the vCenter
book
Article ID: 387775
calendar_today
Updated On:
Products
VMware vCenter Server
Issue/Introduction
While navigating in the AutoDeploy Software Depots, Deploy Rules, intermittently we see the below error:
Sometimes another error can be received "Managing Rules is temporarily unavailable. Could not retrieve health status for Auto Deploy and Image Builder services. One or both services may be down or unreachable"
While checking the service-control --status --all, we see that vmware-imagebuilder and vmware-rbd-watchdog is up and running.
Applying/Editing an Auto Deploy rule might get stuck at 2%.
Upon checking the /var/log/vmware/vsphere-ui/logs/vsphere_client_virgo.log:
[YYYY-MM-DDTHH:MM:SS] [ERROR] http-nio-5090-exec-2630 70830508 114081 200958 com.vmware.vise.actionsfw.impl.ActionsEvaluator An error occurred while retrieving data for actions evaluation. com.vmware.vise.data.query.internal.DataServiceException: The query execution timed out because of a back-end data adapter 'com.vmware.vsphere.client.h5.autodeploy.impl.DepotDataProviderAdapter' which took more than 120 seconds. at com.vmware.vise.data.query.impl.DataAdapterUtil.processDataAdapterTaskException(DataAdapterUtil.java:159) at com.vmware.vise.data.query.impl.DataAdapterUtil.executeAdapterTasks(DataAdapterUtil.java:125) at com.vmware.vise.data.query.impl.DataAdapterRetriever.runDataTasks(DataAdapterRetriever.java:374) at com.vmware.vise.data.query.impl.DataAdapterRetriever.invokeDataAdapters(DataAdapterRetriever.java:325) at com.vmware.vise.data.query.impl.DataAdapterRetriever.getResultsFromDataAdapters(DataAdapterRetriever.java:78) at com.vmware.vise.data.query.impl.DataManager.getResultsFromDataAdapters(DataManager.java:175) at com.vmware.vise.data.query.impl.DataServiceImpl.getResults(DataServiceImpl.java:319) at com.vmware.vise.data.query.impl.DataServiceImpl.getResponse(DataServiceImpl.java:201) at com.vmware.vise.data.query.impl.DataServiceImpl.getData(DataServiceImpl.java:175) at com.sun.proxy.$Proxy199.getData(Unknown Source) at com.vmware.vise.data.adapters.risetovise.RiseToViseQueryExecutor.getData(RiseToViseQueryExecutor.java:329) at com.vmware.vise.data.adapters.risetovise.RiseToViseQueryExecutor.executeComplexQueriesInVise(RiseToViseQueryExecutor.java:266) at com.vmware.vise.data.adapters.risetovise.RiseToViseQueryExecutor.executeComplexQueries(RiseToViseQueryExecutor.java:194) at com.vmware.vise.data.adapters.risetovise.RiseToViseQueryExecutor.executeQueryBatch(RiseToViseQueryExecutor.java:139) at com.vmware.vise.data.adapters.risetovise.RiseToViseQueryServiceFactory$RiseToViseQueryBatchService.executeQueryBatch(RiseToViseQueryServiceFactory.java:142) at com.vmware.vsphere.bridge.DenyConfigurationFilesFilter.doFilter(DenyConfigurationFilesFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1698) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:750) Caused by: java.util.concurrent.TimeoutException: null at com.vmware.vise.util.concurrent.ExecutorUtil.executeTasks(ExecutorUtil.java:744) at com.vmware.vise.data.query.impl.ProfiledTaskExecutor.executeTasks(ProfiledTaskExecutor.java:70) at com.vmware.vise.data.query.impl.DataAdapterUtil.executeAdapterTasks(DataAdapterUtil.java:112)
Under /var/log/vmware/vsphere-ui/logs/dataservice.log:
[YYYY-MM-DDTHH:MM:SS] [WARN ] http-nio-5090-exec-2624 70830555 114081 200958 ProfilingLogService [queryId: q-4735994:h5c-DataAccessController] The Data Service detected slow execution: The query batch execution took too long: 120006 milliseconds.
The queries in the batch sent to the Data Service are: Query[0]:
[YYYY-MM-DDTHH:MM:SS] [ERROR] data-service-pool-786 70830555 114081 200958 Invocation of 'com.vmware.vim.binding.imagebuilder.DepotSpec[] com.vmware.vim.binding.imagebuilder.DepotManager.GetDepots(com.vmware.vim.binding.imagebuilder.DepotManager$DepotFilterSpec)' to http://localhost:1080/external-vecs/http1/<vc-fqdn>/443/vmw/imagebuilder/vmomi for opId 'q-4735994:h5c-DataAccessController:DepotDataProviderAdapter:10075188-54h1y-h5:70830555' failed in ? ms, error: com.vmware.vim.vmomi.client.exception.ConnectionException:http://localhost:1080/external-vecs/http1/<vc-fqdn>/443/vmw/imagebuilder/vmomi invocation failed with "java.net.SocketTimeoutException: Read timed out"
There are no such related errors/warnings in '/var/log/vmware/vmware-imagebuilder/main.log' at the time of issue.
Environment
vCenter 7.x.x
vCenter 8.x.x
Cause
Connection pool size for the Image Builder service reaches the maximum limit and gets exhausted.
Resolution
Note: Please note that the above change will result in ImageBuilder service consuming around 1.5GB of memory so please validate the memory usage on the vCenter before performing the below steps
Take a valid snapshot/backup of the vCenter Appliance before proceeding with the below steps:
Follow the below steps:
Login to vCenter using a SSH session via putty.
cd /usr/lib/vmware-imagebuilder/site-packages/imagebuilder
Take a copy of the 'ibserver.py' file.
cp ibserver.py /storage/core/ibserver.py.bkp
Open the file using a vi editor:
vi ibserver.py
In vCenter 7.x.x
Look for the parameter 'self.soapHttpd.SetMaxWorkers(8)'.
Change the value from (8) to (128) for self.soapHttpd.SetMaxWorkers(8).