Activity log for bug #1192416

Date Who What changed Old value New value Message
2013-06-19 02:48:01 kaitian521 bug added bug
2013-06-19 06:51:00 Huang Zhiteng cinder: status New Invalid
2013-06-19 06:51:35 Huang Zhiteng cinder: status Invalid Incomplete
2013-06-19 07:28:46 kaitian521 description when I have a bad cinder-volume service, cinder will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting the last line ,should be for service in volume_services: host = service['host'] if not utils.service_is_up(service) or service['disabled']: LOG.warn(_("volume service is down or disabled. " "(host: %s)" % host) ) #"(host: %s)") % host) continue when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 cinder will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting the last line ,should be  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue
2013-06-19 07:31:11 kaitian521 tags cinder-scheduler
2013-06-19 07:31:13 kaitian521 description when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 cinder will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting the last line ,should be  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17  cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue
2013-06-19 07:31:24 kaitian521 cinder: status Incomplete New
2013-06-19 07:52:53 Huang Zhiteng cinder: status New Incomplete
2013-06-19 08:25:00 kaitian521 description when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17  cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 ####################################################################################### SO it is very easy to reproduce it: step 1: change our hostname to others "hostname other" step 2 : restart all cinder service : "cinder-api, cinder-manage, cinder-volume" Then you can get some bad cinder-volume service as above. ######################################################################################## When running "cinder create 1" cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue
2013-06-19 08:27:28 kaitian521 cinder: status Incomplete New
2013-06-19 08:28:43 kaitian521 description when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 ####################################################################################### SO it is very easy to reproduce it: step 1: change our hostname to others "hostname other" step 2 : restart all cinder service : "cinder-api, cinder-manage, cinder-volume" Then you can get some bad cinder-volume service as above. ######################################################################################## When running "cinder create 1" cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 ####################################################################################### SO it is very easy to reproduce it: step 1: change our hostname to others "hostname other" step 2 : restart all cinder service : "cinder-api, cinder-scheduler, cinder-volume" step 3 : cinder-manage service list Then you can get some bad cinder-volume service as above. ######################################################################################## When running "cinder create 1" cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue
2013-06-24 02:30:46 renminmin cinder: status New Incomplete
2013-06-24 02:33:13 renminmin cinder: status Incomplete New
2013-07-03 08:38:51 Vincent Hou cinder: status New Incomplete
2013-07-03 08:38:57 Vincent Hou cinder: status Incomplete Confirmed
2013-07-04 15:31:10 Haomai Wang cinder: assignee Haomai Wang (haomai)
2013-07-04 15:56:00 OpenStack Infra cinder: status Confirmed In Progress
2013-07-04 20:44:02 Huang Zhiteng summary cinder/scheduler/host_manager.py , line 268, in get_all_host_states Cinder host manager doesn't remove disabled/stopped service from host_state_map
2013-07-04 20:46:10 Huang Zhiteng description when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 ####################################################################################### SO it is very easy to reproduce it: step 1: change our hostname to others "hostname other" step 2 : restart all cinder service : "cinder-api, cinder-scheduler, cinder-volume" step 3 : cinder-manage service list Then you can get some bad cinder-volume service as above. ######################################################################################## When running "cinder create 1" cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting ################################################################################## When cinder-scheduler decide which cinder-volume is bad, it will log a warning log: LOG.warn(_("volume service is down or disabled. "                            #"(host: %s)") % host) BUT, this is wrong; the right should be this:  for service in volume_services:             host = service['host']             if not utils.service_is_up(service) or service['disabled']:                 LOG.warn(_("volume service is down or disabled. "                            "(host: %s)" % host) )                            #"(host: %s)") % host)                 continue when I have a bad cinder-volume service, cinder-manage service list cinder-volume localhost nova enabled :-) 2013-06-19 07:20:17 cinder-scheduler localhost nova enabled :-) 2013-06-19 07:20:17 cinder-volume other nova enabled XXX 2013-06-19 07:20:17 cinder-scheduler other nova enabled XXX 2013-06-19 07:20:17 ####################################################################################### SO it is very easy to reproduce it: step 1: change our hostname to others "hostname other" step 2 : restart all cinder service : "cinder-api, cinder-scheduler, cinder-volume" step 3 : cinder-manage service list    Then you can get some bad cinder-volume service as above. ######################################################################################## When running "cinder create 1" cinder scheduler will log an warning: Traceback (most recent call last): 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/amqp.py", line 433, in _process_data 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp **args) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/openstack/common/rpc/dispatcher.py", line 148, in dispatch 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 115, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp context, ex, request_spec) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp self.gen.next() 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/manager.py", line 104, in create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 64, in schedule_create_volume 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp filter_properties) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/filter_scheduler.py", line 197, in _schedule 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp hosts = self.host_manager.get_all_host_states(elevated) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp File "/usr/lib/python2.6/site-packages/cinder/scheduler/host_manager.py", line 268, in get_all_host_states 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp "(host: %s)") % host) 2013-06-18 04:01:38.771 54708 TRACE cinder.openstack.common.rpc.amqp TypeError: not all arguments converted during string formatting Possible solution is to remove disabled/stopped service from host_state_map() or simple clear the whole map. ######################################## for service in volume_services: if not utils.service_is_up(service) or service['disabled']: LOG.warn(_("service is down or disabled. Host name :%s") % service['host']) _host = self.host_state_map.get(service['host']) if _host: self.host_state_map.pop(service['host']) continue host = service['host'] ######################################## The reason is that get_all_host_states method is use to get all service state and cinder scheduler choose the cinder-volume service from them. Then when cinder-volume service is down or disabled, the state of bad one need remove from host_state_map list.
2013-07-09 04:07:43 Haomai Wang cinder: status In Progress Fix Committed
2013-07-17 11:08:47 Thierry Carrez cinder: status Fix Committed Fix Released
2013-07-17 11:08:47 Thierry Carrez cinder: milestone havana-2
2013-10-17 10:23:43 Thierry Carrez cinder: milestone havana-2 2013.2
2014-10-17 10:31:49 Lukas Pustina bug added subscriber Lukas Pustina