cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-10320) Invalid pair for response object breaking response parsing
Date Tue, 20 Mar 2018 12:20:00 GMT

    [ https://issues.apache.org/jira/browse/CLOUDSTACK-10320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16406243#comment-16406243
] 

ASF GitHub Bot commented on CLOUDSTACK-10320:
---------------------------------------------

marcaurele commented on issue #2481: CLOUDSTACK-10320 - Invalid pair for response object breaking
response parsing
URL: https://github.com/apache/cloudstack/pull/2481#issuecomment-374577255
 
 
   I don't think we're in a hurry to fix the problem. I will investigate on our platform and
maybe try to narrow down the isolation level to those queries only. It will take one or two
weeks to get the result. Anyway, I don't see another option to fix the problem with the same
requirements (total count, pagination).
   The other solution would be to get rid of the count value in the API response, making this
change obsolete. It should be a point to keep in mind for the next API version.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Invalid pair for response object breaking response parsing
> ----------------------------------------------------------
>
>                 Key: CLOUDSTACK-10320
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10320
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: API
>            Reporter: Marc-Aurèle Brothier
>            Assignee: Marc-Aurèle Brothier
>            Priority: Major
>
> Under some circumstances, the API is returning an invalid response, for simplicity I
will expose the JSON case. The API response on a listVirtualMachines can be this string:
> {code:java}
> { "listvirtualmachinesresponse" :  ] } }{code}
> To understand how this is possible, assume you have more than one management server and
one is processing the destroy of a virtual machine in the account X which is the only one
it has. Another process is returning the result of listVirtualMachines for that same account
X. During the listVM command, the result set is fetch with a searchAndDistinctCount due to
the view ([https://github.com/apache/cloudstack/blob/master/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java#L1024).]
This is done through 2 queries in the GenericDao [https://github.com/apache/cloudstack/blob/master/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java#L1323]
and if you encounter the _right_ conditions, the VM will be marked as removed in between those
2 queries. This results in having a Pair result with at least one object but a count of 0.
Then following how is done the serialization of the response at [https://github.com/apache/cloudstack/blob/master/server/src/main/java/com/cloud/api/response/ApiResponseSerializer.java#L86]
you will reach the case where your output is the one previously mentioned.
> To overcome this issue, there isn't a true fix but only a better pair response to ensure
a correct response formatting. If the result set contains at least something, the count cannot
be 0 but we cannot guess the correct answer, but only state it has at least one element.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message