Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.3.2
-
None
Description
When vcld tries to process a request in the deleted state and the initialization of all the corresponding objects fails, the request state may be left as 'deleted' after the process exits. This causes vcld to fork a process over and over again.
This will occur if there is a problem which causes the provisioning object to fail to initialize. As a result, State.pm::reservation_failed is called. This has a condition at the beginning which calls is_request_deleted. This returns true. The code then proceeds to only set the computer state to available and leaves the request state intact.
This is a problem because the failure occurred before the request state was even updated to pending. vcld keeps trying to fork processes, all of which fail.
A solution would be to catch this and set the computer state to failed and the request state to complete.