Can't find storage server connection
by francesco@shellrent.com
Hi all,
I'm using oVirt SDK python for retrieving info about storage domain, in several hosts (centos7/ovirt4.3 and centos8/ovirt4.4), but the script exits with the following error in some of them:
Traceback (most recent call last):
File "get_uuid.py", line 70, in <module>
storage_domain = sds_service.list(search='name=data-foo')[0]
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/services.py", line 26296, in list
return self._internal_get(headers, query, wait)
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/service.py", line 211, in _internal_get
return future.wait() if wait else future
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/service.py", line 55, in wait
return self._code(response)
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/service.py", line 208, in callback
self._check_fault(response)
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/service.py", line 132, in _check_fault
self._raise_error(response, body)
File "/root/.local/lib/python2.7/site-packages/ovirtsdk4/service.py", line 118, in _raise_error
raise error
ovirtsdk4.Error: Fault reason is "Operation Failed". Fault detail is "Can't find storage server connection for id '92444a95-0be7-4589-ac46-1ed6dfe7ed4c'.". HTTP response code is 500.
The portion of the script that search for the storage domain is the following:
sds_service = connection.system_service().storage_domains_service()
storage_domain = sds_service.list(search='name={}'.format(storage_domain_name))[0]
Now: I have no real clue on which ID "92444a95-0be7-4589-ac46-1ed6dfe7ed4c'" but digging in the engine logs it refers to StorageServerConnections ID:
[root@ovirt-engine ovirt-engine]# zgrep 92444a95-0be7-4589-ac46-1ed6dfe7ed4c *.gz
engine.log-20201108.gz:2020-11-07 06:05:54,352+01 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.ConnectStorageServerVDSCommand] (EE-ManagedScheduledExecutorService-engineScheduledThreadPool-Thread-79) [3ffb810c] START, ConnectStorageServerVDSCommand(HostName = another-server.foo.com, StorageServerConnectionManagementVDSParameters:{hostId='7d202bc7-002b-4426-8446-99b6b346874e', storagePoolId='82d0b3de-0334-451c-8321-c3533de9a894', storageType='LOCALFS', connectionList='[StorageServerConnections:{id='92444a95-0be7-4589-ac46-1ed6dfe7ed4c', connection='/data', iqn='null', vfsType='null', mountOptions='null', nfsVersion='null', nfsRetrans='null', nfsTimeo='null', iface='null', netIfaceName='null'}]', sendNetworkEventOnFailure='true'}), log id: 1509fe17
As I said, I tried to execute the script from several hosts: some of them with oVirt 4.3 and other with oVirt 4.4 but it can run, or not, on both of versions.
I also did the following test: I tried execute the script on different host passing different data storage:
- let's say that on host foo-host1, executing the script querying for its own data storage named foo-data1 works correctly;
- and let's say that on host foo-host2, the same script querying for its own data storage foo-data2 return the mentioned error;
If I execute the script on foo-host2 querying the foo-data1 domain data, I got the error. If I execute on foo-host1 querying foo-data2, I still got the error.
When I try to manage the storage domain via ovirt-engine GUI on the hosts that the script exit with the mentioned error, I recieve the following error:
Uncaught exception occurred. Please try reloading the page. Details: (TypeError) : Cannot read property 'a' of null
Please have your administrator check the UI logs
The logs:
2020-11-23 09:59:31,934+01 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-239) [] Permutation name: 68A62BEB12822F65FE66B14A9E16480A
2020-11-23 09:59:31,934+01 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-239) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'a' of null
at org.ovirt.engine.ui.uicommonweb.models.storage.FileStorageModel.$lambda$0(FileStorageModel.java:34)
at org.ovirt.engine.ui.uicommonweb.models.storage.FileStorageModel$lambda$0$Type.onSuccess(FileStorageModel.java:34)
at org.ovirt.engine.ui.frontend.Frontend$1.$onSuccess(Frontend.java:227)
at org.ovirt.engine.ui.frontend.Frontend$1.onSuccess(Frontend.java:227)
at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.$onSuccess(OperationProcessor.java:133)
at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.onSuccess(OperationProcessor.java:133)
at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.$onSuccess(GWTRPCCommunicationProvider.java:270)
at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.onSuccess(GWTRPCCommunicationProvider.java:270)
at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:198)
at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:233)
at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409)
at Unknown.eval(webadmin-0.js)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java:306)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:345)
at Unknown.eval(webadmin-0.js)
Any slightest idea on what is going on?
Thank you for your time and help,
Francesco