← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1153774] Re: exception handling logic questionably assumes the availability of database service

 

this is very old and a lot has changed since this was filed.

** Changed in: nova
       Status: Triaged => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1153774

Title:
  exception handling logic questionably assumes the availability of
  database service

Status in OpenStack Compute (Nova):
  Invalid

Bug description:
  version: essex

  In function "_run_instance" of class "ComputeManager" in
  nova/compute/manager.py, it seems that the exception handling logic
  assumes the availability of database service, which is problematic
  because an exception may be triggered by the unavailability of
  database service.

  For example, if the database service (mysqld in our case) crashes (and
  then restarts e.g. in a few seconds) when the "_spawn" is executing,
  as shown in the snippet below, then the three-fold exception handling
  logic of "_run_instance" would all fail.

  ==========
  (wrapper)
  try:
  	(inside _run_instance)
  	try:
  		try:
  			_spawn
  		except:
  			_deallocate_network
  	except:
  		_set_instance_error_state
  except:
  	add_instance_fault_from_exc
  ==========

  Specifically, "_deallocate_network" would not be able to reset the ip
  to the state "allocated=0" in db "nova.fixed_ips" (assuming the use of
  fixed ip). "_set_instance_error_state" would not be able to set
  vm_state to ERROR in db "nova.instances." And
  "add_instance_fault_from_exc" would not be able to add the fault
  information into db "nova.instance_faults."

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1153774/+subscriptions