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 Fri, 16 Mar 2018 15:50:00 GMT

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

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

blueorangutan commented on issue #2481: CLOUDSTACK-10320 - Invalid pair for response object
breaking response parsing
URL: https://github.com/apache/cloudstack/pull/2481#issuecomment-373756211
 
 
   Packaging result: ✔centos6 ✔centos7 ✔debian. JID-1787

----------------------------------------------------------------
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