Skip to content

Commit 878678b

Browse files
authored
Merge pull request xapi-project#3138 from mseri/SCTX-2558
CA-259579: Introduce ballooning timeout before migration error
2 parents 8c7112e + 1280390 commit 878678b

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

ocaml/idl/datamodel.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,8 @@ let _ =
10521052
~doc:"You attempted to start a VM that's attached to more than one VDI with a timeoffset marked as reset-on-boot." ();
10531053
error Api_errors.vms_failed_to_cooperate [ ]
10541054
~doc:"The given VMs failed to release memory when instructed to do so" ();
1055-
1055+
error Api_errors.ballooning_timeout_before_migration [ "vm" ]
1056+
~doc:"Timeout trying to balloon down memory before VM migration. If the error occurs repeatedly, consider increasing the memory-dynamic-min value." ();
10561057

10571058
(* Storage errors *)
10581059
error Api_errors.sr_not_attached ["sr"]

ocaml/xapi-consts/api_errors.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,7 @@ let duplicate_mac_seed = "DUPLICATE_MAC_SEED"
410410
let client_error = "CLIENT_ERROR"
411411

412412
let ballooning_disabled = "BALLOONING_DISABLED"
413+
let ballooning_timeout_before_migration = "BALLOONING_TIMEOUT_BEFORE_MIGRATION"
413414

414415
let ha_host_is_armed = "HA_HOST_IS_ARMED"
415416
let ha_is_enabled = "HA_IS_ENABLED"

ocaml/xapi/xapi_vm_migrate.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,13 @@ let pool_migrate ~__context ~vm ~host ~options =
226226
end;
227227
match exn with
228228
| Xenops_interface.Failed_to_acknowledge_shutdown_request ->
229-
raise (Api_errors.Server_error (Api_errors.vm_failed_shutdown_ack, []))
229+
raise Api_errors.(Server_error (vm_failed_shutdown_ack, []))
230230
| Xenops_interface.Cancelled _ ->
231231
TaskHelper.raise_cancelled ~__context
232232
| Xenops_interface.Storage_backend_error (code, _) ->
233-
raise (Api_errors.Server_error (Api_errors.sr_backend_failure, [code]))
233+
raise Api_errors.(Server_error (sr_backend_failure, [code]))
234+
| Xenops_interface.Ballooning_timeout_before_migration ->
235+
raise Api_errors.(Server_error (ballooning_timeout_before_migration, [Ref.string_of vm]))
234236
| _ -> raise exn
235237
)
236238

ocaml/xapi/xapi_xenops.ml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2308,7 +2308,6 @@ let transform_xenops_exn ~__context ~vm queue_name f =
23082308
| Vms_failed_to_cooperate vms ->
23092309
let vms' = List.map (fun uuid -> Db.VM.get_by_uuid ~__context ~uuid |> Ref.string_of) vms in
23102310
reraise Api_errors.vms_failed_to_cooperate vms'
2311-
| Ballooning_error(code, descr) -> internal "ballooning error: %s %s" code descr
23122311
| IO_error -> reraise Api_errors.vdi_io_error ["I/O error saving VM suspend image"]
23132312
| Failed_to_contact_remote_service x -> internal "failed to contact: %s" x
23142313
| Hook_failed(script, reason, stdout, i) -> reraise Api_errors.xapi_hook_failed [ script; reason; stdout; i ]
@@ -2326,6 +2325,8 @@ let transform_xenops_exn ~__context ~vm queue_name f =
23262325
| Failed_to_start_emulator (uuid, name, msg) ->
23272326
let vm = Db.VM.get_by_uuid ~__context ~uuid in
23282327
reraise Api_errors.failed_to_start_emulator [Ref.string_of vm; name; msg]
2328+
| Ballooning_timeout_before_migration ->
2329+
reraise Api_errors.ballooning_timeout_before_migration [Ref.string_of vm]
23292330
| e -> raise e
23302331
end
23312332

0 commit comments

Comments
 (0)