Hi Laurent,
we have big Problems at a customer site, which we have not encountered before. When our plug-in view is started, it obtains a HostServiceTicket from the vCenter and uses it to retrieve some CIM values from the host, and shows them.
The customer complained that this works only about once in 20 times!!
When he clicks on something, he gets the error:
The requested object "e80251ef-5cdf-40cf-932e-91545e117acf:HostSystem:host-37042" was not found.
So I requested the virgo log. I could not find an exception for this in the log. I can not really tell what the problem is, but I found this in the log.
I called our plug-in the "acme" and the other plugin "otherAcme" (they are 2 different companies) -
[2016-02-02T16:05:13.225+01:00] [INFO ] data-service-pool-7126 70000969 100015 200005 acme.AcmePropertyProvider Performing first step of request
[2016-02-02T16:05:13.225+01:00] [INFO ] data-service-pool-7126 70000969 100015 200005 acme.AcmePropertyProvider Performing second step of request - ready to get HostServiceTicket
[2016-02-02T16:05:13.226+01:00] [INFO ] data-service-pool-7130 70000969 100015 200005 otherAcme.OtherAcmePropertyProvider getData called with 1 queries.
[2016-02-02T16:05:13.226+01:00] [WARN ] data-service-pool-7130 70000969 100015 200005 otherAcme.OtherAcmePropertyProvider processQuery: Target type is NULL. Nothing to do. returning.
[2016-02-02T16:05:13.226+01:00] [ERROR] data-service-pool-7130 70000969 100015 200005 com.vmware.vise.util.concurrent.ExecutorUtil A task crashed: Adapter otherAcme.OtherAcmeDataAdapter java.lang.IllegalArgumentException: The number of querySpecs (1) is different from the number of resultSets (0).
at com.vmware.vise.data.query.util.ResultUtil.setQueryNamesIntoResults(ResultUtil.java:330)
at com.vmware.vise.data.query.impl.DataAdapterUtil.getDataFromAdapter(DataAdapterUtil.java:154)
at com.vmware.vise.data.query.impl.DataAdapterUtil.getResultFromAdapter(DataAdapterUtil.java:96)
at com.vmware.vise.data.query.impl.DataAdapterUtil.access$000(DataAdapterUtil.java:33)
at com.vmware.vise.data.query.impl.DataAdapterUtil$1.run(DataAdapterUtil.java:73)
at com.vmware.vise.util.concurrent.ExecutorUtil$2.run(ExecutorUtil.java:187)
at com.vmware.vise.util.concurrent.ExecutorUtil$ThreadContextPropagatingRunnable.run(ExecutorUtil.java:584)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Our thread is "data-service-pool-7216", the other is "data-service-pool-7130". After this happens, there are no more entries at all for our thread. Not even exceptions or anything.
Could it be that the data Service just kills our thread after this ExecuterUtil exception happens? Do you have any ideas how I could further diagnose this issue?
The Customer has vCenter 6.0 (probably GA) - if it would make a difference, I could ask him exactly what his Version is.
Please help
Cathy
Hi Cathy,
Would it be possible to provide the full virgo log? Probably send it privately to Laurent and me.
Thanks,
~Peter
The number of querySpecs (1) is different from the number of resultSets (0).
at com.vmware.vise.data.query.util.ResultUtil.setQueryNamesIntoResults(ResultUtil.java:330)
I have checked this in the code base. Your data adapter is returning empty ResultSet array.
In case of error it should return ResultSet with "error" field containing the exception.
The contract of the DataAdapter interface is that you should return ResultSet array with length equal to the QuerySpec array.
This explains the exception from the DataAdapterUtil.
I would focus on why your adapter gives warnings and does nothing (returns empty ResultSet[]).
Why the target type is null? Is this something that is coming from the UI or from other service/adapter?
If it is coming from the UI, what request do you send?
Is it Flex/HTML UI?
hi Cathy,
So otherAcme is not your plugin right? and everything works fine for that customer when otherAcme is disabled?
Hi Laurent and Peter,
yes, the otherAcme plug-in Comes from another Company, I have no influence over the way it handles the requests.
To do some testing, I disabled the plug-in, and after the WebClient restarted, and I clicked on my host
https://localhost:9443/vsphere-client/?csp#extensionId%3Dvsphere.core.viHosts.domainView
I got the error:
You do not have permisssions to view this object or this object does not exist
This also happened after I rebooted the virgo Server. I am preparing logs and screenshots which I will send to
you two. I can't put them in the community - there is too much Information about our plug in and the "otherAcme" plugin.
I'll send you the files in a short time
thanks for your Attention
Cathy
Hello Laurent and Peter,
have you been able to see anything in logs which could help? The customer is waiting for some Kind of answer.
thanks
Cathy
Hello Laurent and Peter,
the customer asked again for an answer. Do you have any updates for this?
thanks
Cathy
Hi Laurent and Peter,
just so it does not get missed, I sent you both ( in the internal discussion) answers to Peters questions, as well
as some xtra log Information.
Cathy