Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.3.2
-
None
Description
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.