VMware {code} Community
CathyBr
Enthusiast
Enthusiast

Major Problems with plug-in - possibly due to having other plug-ins running?

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

Reply
0 Kudos
8 Replies
Peter_Ivanov
VMware Employee
VMware Employee

Hi Cathy,

Would it be possible to provide the full virgo log? Probably send it privately to Laurent and me.

Thanks,

~Peter

Reply
0 Kudos
Peter_Ivanov
VMware Employee
VMware Employee

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.

Reply
0 Kudos
Peter_Ivanov
VMware Employee
VMware Employee

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?

Reply
0 Kudos
laurentsd
VMware Employee
VMware Employee

hi Cathy,

So otherAcme is not your plugin right?  and everything works fine for that customer when otherAcme is disabled?

Reply
0 Kudos
CathyBr
Enthusiast
Enthusiast

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

Reply
0 Kudos
CathyBr
Enthusiast
Enthusiast

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

Reply
0 Kudos
CathyBr
Enthusiast
Enthusiast

Hello Laurent and Peter,

the customer asked again for an answer. Do you have any updates for this?

thanks

Cathy

Reply
0 Kudos
CathyBr
Enthusiast
Enthusiast

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

Reply
0 Kudos