You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/08/26 16:09:57 UTC

[jira] [Commented] (VCL-775) Request may fail due to timing issue in computer_not_being_used and get_request_by_computerid

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

ASF subversion and git services commented on VCL-775:
-----------------------------------------------------

Commit 1620605 from [~arkurth] in branch 'vcl/trunk'
[ https://svn.apache.org/r1620605 ]

VCL-775
Added code to utils.pm::get_request_by_computerid to check if a reservation assigned to the computer was deleted if the request info could not be retrieved.

Other
Added $no_cache argument to call to get_vmhost_info in get_computer_info. Assumption is if $no_cache is passed to get_computer_info, the vmhost info it retrieves should also not be cached.

Added $no_cache argument to get_database_table_columns for testing.

> Request may fail due to timing issue in computer_not_being_used and get_request_by_computerid
> ---------------------------------------------------------------------------------------------
>
>                 Key: VCL-775
>                 URL: https://issues.apache.org/jira/browse/VCL-775
>             Project: VCL
>          Issue Type: Bug
>          Components: vcld (backend)
>    Affects Versions: 2.3.2
>            Reporter: Andy Kurth
>            Assignee: Andy Kurth
>            Priority: Minor
>             Fix For: 2.4
>
>
> There is a rare situation where "reservation A" will fail because it determines the computer assigned to "reservation A" is not available because "reservation B" exists for that computer.
> "Reservation A" calls new.pm:computer_not_being_used, which calls utils.pm::get_request_by_computerid.
> get_request_by_computerid first gathers a list of reservations which exist in the database for the computer, then loops through each reservation call calls get_request_info for each.
> In between the time when the reservations were gathered and get_request_info is called, "reservation B" may have ended and the request deleted from the database.  This causes "reservation A's" call to get_request_info to fail, which eventually causes computer_not_being_used to return false and "reservation A" fails.
> A check should be added to determine if "reservation B" has been deleted.



--
This message was sent by Atlassian JIRA
(v6.2#6252)