GuruMeditationReport
目录
Guru Meditation Reports
当 OpenStack 的(生产)部署出现问题时,收集调试数据是解决问题和最终解决问题的关键第一步。Nova 已经广泛使用了日志记录功能,产生大量的数据。然而,这并不能使管理员获得系统当前实时状态的准确视图。例如,正在运行哪些线程,哪些配置参数生效,等等。eventlet 后门设施为任何基于 eventlet 的进程提供了一个交互式 shell 界面,允许管理员 telnet 到预定义的端口并执行各种命令。这可用于收集必要的状态信息,但它有许多限制。
- 每个在主机上运行的服务都需要在不同的 TCP 端口上运行后门,并且管理员必须记住哪个进程在监听哪个端口。搞错的话会发生非常糟糕的事情。
- 后门需要在进程启动时启用。如果问题出现之前没有这样做,管理员就无能为力,因为重启服务以启用后门会丢失所需的关键状态。
- 后门 shell 功能过于强大。通过呈现一个交互式 python shell,给管理员带来了过多的负担,需要找到正确的数据,而不会造成问题。
- 后门 shell 是一个有效的“root shell”,可以通过不安全的 TCP 端口提供,因此任何理智的管理员都不会在生产系统上启用它。
Error Report Framework
为了解决上述问题,本页概述了一个通用错误报告生成框架的设计,称为“guru meditation report”(参见 http://en.wikipedia.org/wiki/Guru_Meditation)。
- Models: 这些类定义了各种有趣状态的结构化数据。例如,堆栈跟踪、线程、配置参数、软件包版本信息等。它们能够序列化为 XML / JSON 或纯文本表示形式
- Generators: 这些类用于使用系统的当前运行时状态填充模型类
将为所有 OpenStack 服务提供许多标准模型/生成器
- StackTraceModel: 任何包含堆栈跟踪的模型的基类
- ThreadModel: 关于线程的信息类
- ExceptionModel: 关于捕获的异常的信息类
- ConfigModel: 关于配置文件设置的信息类
- PackageModel: 关于 vendor/product/version/package 信息类
每个 OpenStack 项目将能够注册进一步的生成器类,以提供自定义的项目特定数据。
Integration with apps
每个长期运行的服务进程都应该调用一个安装信号处理程序的函数,该函数将在收到 SIGUSR1 时触发 guru meditation 框架。这将导致该进程将其当前状态的完整报告转储到 stderr。
对于处理 RPC 进程的进程,也可能需要在 RPC 请求调度器中安装某种钩子,以便在处理请求导致未捕获的异常时保存 guru meditation 报告。可以将这些报告保存到周知目录(/var/log/openstack/<project>/<service>/)中,供系统管理员或自动化错误分析工具稍后分析。
Example Report
========================================================================
==== Guru meditation report ====
========================================================================
UUID: 6d4faf99-480c-4d0c-90be-b7d090ecd83e
Time: Mon, 18 Feb 2013 18:01:11 +0000
========================================================================
==== Config ====
========================================================================
DEFAULT:
allow_resize_to_same_host=True
allow_same_net_traffic=True
allowed_direct_url_schemes=[]
allowed_rpc_exception_modules=['nova.openstack.common.exception', 'nova.exception', 'cinder.exception', 'exceptions']
api_paste_config=/etc/nova/api-paste.ini
api_rate_limit=True
auth_strategy=keystone
auto_assign_floating_ip=False
backdoor_port=None
bandwidth_poll_interval=600
base_dir_name=_base
bindir=/home/berrange/src/cloud/nova/bin
block_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER, VIR_MIGRATE_NON_SHARED_INC
boot_script_template=/home/berrange/src/cloud/nova/nova/cloudpipe/bootscript.template
ca_file=cacert.pem
ca_path=/home/berrange/src/cloud/data/nova/CA
cert_manager=nova.cert.manager.CertManager
checksum_base_images=False
checksum_interval_seconds=3600
cinder_api_insecure=False
cinder_catalog_info=volume:cinder:publicURL
cinder_cross_az_attach=True
cinder_endpoint_template=None
cinder_http_retries=3
cnt_vpn_clients=0
compute_api_class=nova.compute.api.API
compute_driver=libvirt.LibvirtDriver
compute_manager=nova.compute.manager.ComputeManager
compute_stats_class=nova.compute.stats.Stats
compute_topic=compute
config_dir=None
config_drive_format=iso9660
config_drive_skip_versions=1.0 2007-01-19 2007-03-01 2007-08-29 2007-10-10 2007-12-15 2008-02-01 2008-09-01
config_drive_tempdir=None
config_file=['/etc/nova/nova.conf']
console_host=mustard.gsslab.fab.redhat.com
console_manager=nova.console.manager.ConsoleProxyManager
console_topic=console
consoleauth_topic=consoleauth
control_exchange=nova
create_unique_mac_address_attempts=5
crl_file=crl.pem
db_backend=sqlalchemy
db_driver=nova.db
debug=True
default_access_ip_network_name=None
default_availability_zone=nova
default_ephemeral_format=None
default_floating_pool=nova
default_instance_type=m1.small
default_log_levels=['amqplib=WARN', 'sqlalchemy=WARN', 'boto=WARN', 'suds=INFO', 'keystone=INFO', 'eventlet.wsgi.server=WARN']
default_notification_level=INFO
default_publisher_id=mustard.gsslab.fab.redhat.com
default_schedule_zone=None
defer_iptables_apply=False
dhcp_domain=novalocal
dhcp_lease_time=120
dhcpbridge=/home/berrange/src/cloud/nova/bin/nova-dhcpbridge
dhcpbridge_flagfile=/etc/nova/nova.conf
disable_process_locking=False
dmz_cidr=[]
dmz_mask=255.255.255.0
dmz_net=10.0.0.0
dns_server=[]
dns_update_periodic_interval=-1
dnsmasq_config_file=
ec2_listen=0.0.0.0
ec2_listen_port=8773
ec2_private_dns_show_ip=False
ec2_strict_validation=True
ec2_timestamp_expiry=300
ec2_workers=None
enable_new_services=True
enabled_apis=['ec2', 'osapi_compute', 'metadata']
enabled_ssl_apis=[]
fake_call=False
fake_network=False
fake_rabbit=False
fatal_deprecations=False
fatal_exception_format_errors=False
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
fixed_ip_disassociate_timeout=600
fixed_range=10.0.0.0/24
fixed_range_v6=fd00::/48
flat_injected=False
flat_interface=eth0
flat_network_bridge=br100
flat_network_dns=8.8.4.4
floating_ip_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver
force_config_drive=None
force_dhcp_release=True
force_raw_images=True
forward_bridge_interface=['all']
gateway=None
gateway_v6=None
glance_api_insecure=False
glance_api_servers=['10.33.8.112:9292']
glance_host=10.33.8.112
glance_num_retries=0
glance_port=9292
glance_protocol=http
glusterfs_mount_point_base=/home/berrange/src/cloud/data/nova/mnt
heal_instance_info_cache_interval=60
host=mustard.gsslab.fab.redhat.com
host_state_interval=120
image_cache_manager_interval=2400
image_info_filename_pattern=/home/berrange/src/cloud/data/nova/instances/_base/%(image)s.info
injected_network_template=/home/berrange/src/cloud/nova/nova/virt/interfaces.template
instance_build_timeout=0
instance_dns_domain=
instance_dns_manager=nova.network.noop_dns_driver.NoopDNSDriver
instance_format=[instance: %(uuid)s]
instance_name_template=instance-%08x
instance_usage_audit=False
instance_usage_audit_period=month
instance_uuid_format=[instance: %(uuid)s]
instances_path=/home/berrange/src/cloud/data/nova/instances
internal_service_availability_zone=internal
iptables_bottom_regex=
iptables_top_regex=
ipv6_backend=rfc2462
key_file=private/cakey.pem
keys_path=/home/berrange/src/cloud/data/nova/keys
keystone_ec2_url=https://:5000/v2.0/ec2tokens
l3_lib=nova.network.l3.LinuxNetL3
libvirt_cpu_mode=none
libvirt_cpu_model=None
libvirt_disk_prefix=None
libvirt_images_type=default
libvirt_images_volume_group=None
libvirt_inject_key=True
libvirt_inject_partition=1
libvirt_inject_password=False
libvirt_lvm_snapshot_size=1000
libvirt_nonblocking=True
libvirt_ovs_bridge=br-int
libvirt_snapshot_compression=False
libvirt_snapshots_directory=/home/berrange/src/cloud/data/nova/instances/snapshots
libvirt_sparse_logical_volumes=False
libvirt_type=kvm
libvirt_uri=
libvirt_use_virtio_for_bridges=True
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtGenericVIFDriver
libvirt_volume_drivers=['iscsi=nova.virt.libvirt.volume.LibvirtISCSIVolumeDriver', 'local=nova.virt.libvirt.volume.LibvirtVolumeDriver', 'fake=nova.virt.libvirt.volume.LibvirtFakeVolumeDriver', 'rbd=nova.virt.libvirt.volume.LibvirtNetVolumeDriver', 'sheepdog=nova.virt.libvirt.volume.LibvirtNetVolumeDriver', 'nfs=nova.virt.libvirt.volume.LibvirtNFSVolumeDriver', 'aoe=nova.virt.libvirt.volume.LibvirtAOEVolumeDriver', 'glusterfs=nova.virt.libvirt.volume.LibvirtGlusterfsVolumeDriver']
libvirt_wait_soft_reboot_seconds=120
linuxnet_interface_driver=nova.network.linux_net.LinuxBridgeInterfaceDriver
linuxnet_ovs_integration_bridge=br-int
live_migration_bandwidth=0
live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE, VIR_MIGRATE_PEER2PEER
live_migration_retry_count=30
live_migration_uri=qemu+tcp://%s/system
lock_path=/home/berrange/src/cloud/data/nova
lockout_attempts=5
lockout_minutes=15
lockout_window=15
log_config=None
log_date_format=%Y-%m-%d %H:%M:%S
log_dir=None
log_file=None
log_format=%(asctime)s %(levelname)8s [%(name)s] %(message)s
logfile_mode=0644
logging_context_format_string=%(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_name)s%(color)s] %(instance)s%(color)s%(message)s
logging_debug_format_suffix=from (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d
logging_default_format_string=%(asctime)s.%(msecs)03d %(color)s%(levelname)s %(name)s [-%(color)s] %(instance)s%(color)s%(message)s
logging_exception_prefix=%(color)s%(asctime)s.%(msecs)03d TRACE %(name)s %(instance)s
max_age=0
memcached_servers=None
metadata_host=10.33.8.112
metadata_listen=0.0.0.0
metadata_listen_port=8775
metadata_manager=nova.api.manager.MetadataManager
metadata_port=8775
metadata_workers=None
mkisofs_cmd=genisoimage
monkey_patch=False
monkey_patch_modules=['nova.api.ec2.cloud:nova.openstack.common.notifier.api.notify_decorator', 'nova.compute.api:nova.openstack.common.notifier.api.notify_decorator']
multi_host=False
my_ip=10.33.8.112
network_api_class=nova.network.api.API
network_device_mtu=None
network_driver=nova.network.linux_net
network_manager=nova.network.manager.FlatDHCPManager
network_size=256
network_topic=network
networks_path=/home/berrange/src/cloud/data/nova/networks
nfs_mount_options=None
nfs_mount_point_base=/home/berrange/src/cloud/data/nova/mnt
non_inheritable_image_properties=['cache_in_nova', 'bittorrent']
notification_driver=[]
notify_api_faults=False
notify_on_any_change=False
notify_on_state_change=None
novncproxy_base_url=http://10.33.8.112:6080/vnc_auto.html
null_kernel=nokernel
num_aoe_discover_tries=3
num_iscsi_scan_tries=3
num_networks=1
os_region_name=None
osapi_compute_listen=0.0.0.0
osapi_compute_listen_port=8774
osapi_compute_workers=None
password_length=12
periodic_enable=True
periodic_fuzzy_delay=60
policy_default_rule=default
policy_file=policy.json
project_cert_subject=/C=US/ST=California/O=OpenStack/OU=NovaDev/CN=project-ca-%.16s-%s
public_interface=br100
publish_errors=False
pybasedir=/home/berrange/src/cloud/nova
qpid_heartbeat=60
qpid_hostname=localhost
qpid_hosts=['localhost:5672']
qpid_password=
qpid_port=5672
qpid_protocol=tcp
qpid_sasl_mechanisms=
qpid_tcp_nodelay=True
qpid_username=
quota_cores=20
quota_driver=nova.quota.DbQuotaDriver
quota_floating_ips=10
quota_injected_file_content_bytes=10240
quota_injected_file_path_bytes=255
quota_injected_files=5
quota_instances=10
quota_key_pairs=100
quota_metadata_items=128
quota_ram=51200
quota_security_group_rules=20
quota_security_groups=10
rbd_secret_uuid=None
rbd_user=None
reboot_timeout=0
reclaim_instance_interval=0
remove_unused_base_images=True
remove_unused_original_minimum_age_seconds=86400
remove_unused_resized_minimum_age_seconds=3600
report_interval=10
rescue_image_id=None
rescue_kernel_id=None
rescue_ramdisk_id=None
rescue_timeout=0
reservation_expire=86400
reserved_host_disk_mb=0
reserved_host_memory_mb=512
resize_confirm_window=0
resume_guests_state_on_host_boot=False
rootwrap_config=/etc/nova/rootwrap.conf
routing_source_ip=10.33.8.112
rpc_backend=nova.openstack.common.rpc.impl_qpid
rpc_cast_timeout=30
rpc_conn_pool_size=30
rpc_response_timeout=60
rpc_thread_pool_size=64
run_external_periodic_tasks=True
running_deleted_instance_action=log
running_deleted_instance_poll_interval=1800
running_deleted_instance_timeout=0
scheduler_manager=nova.scheduler.manager.SchedulerManager
scheduler_topic=scheduler
security_group_api=nova.compute.api.SecurityGroupAPI
security_group_handler=nova.network.sg.NullSecurityGroupHandler
send_arp_for_ha=False
send_arp_for_ha_count=3
service_down_time=60
servicegroup_driver=db
share_dhcp_address=False
snapshot_image_format=None
snapshot_name_template=snapshot-%s
sql_connection=mysql://root:123456@localhost/nova?charset=utf8
sql_connection_debug=0
sql_connection_trace=False
sql_dbpool_enable=False
sql_idle_timeout=3600
sql_max_overflow=None
sql_max_pool_size=5
sql_max_retries=10
sql_min_pool_size=1
sql_retry_interval=10
sqlite_db=nova.sqlite
sqlite_synchronous=True
ssl_ca_file=None
ssl_cert_file=None
ssl_key_file=None
state_path=/home/berrange/src/cloud/data/nova
syslog_log_facility=LOG_USER
tcp_keepidle=600
teardown_unused_network_gateway=False
tempdir=None
until_refresh=0
update_dns_entries=False
use_cow_images=True
use_forwarded_for=False
use_ipv6=False
use_network_dns_servers=False
use_project_ca=False
use_single_default_gateway=False
use_stderr=True
use_syslog=False
use_usb_tablet=True
user_cert_subject=/C=US/ST=California/O=OpenStack/OU=NovaDev/CN=%.16s-%.16s-%s
verbose=True
virt_mkfs=['default=mkfs.ext3 -L %(fs_label)s -F %(target)s', 'linux=mkfs.ext3 -L %(fs_label)s -F %(target)s', 'windows=mkfs.ntfs --force --fast --label %(fs_label)s %(target)s']
vlan_interface=eth0
vlan_start=100
vnc_enabled=True
vnc_keymap=en-us
vncserver_listen=127.0.0.1
vncserver_proxyclient_address=127.0.0.1
volume_api_class=nova.volume.cinder.API
volume_usage_poll_interval=0
vpn_image_id=0
vpn_instance_type=m1.tiny
vpn_ip=10.33.8.112
vpn_key_suffix=-vpn
vpn_start=1000
wsgi_log_format=%(client_ip)s "%(request_line)s" status: %(status_code)s len: %(body_length)s time: %(wall_seconds).7f
xen_hvmloader_path=/usr/lib/xen/boot/hvmloader
xvpvncproxy_base_url=http://10.33.8.112:6081/console
cells:
call_timeout=60
capabilities=['hypervisor=xenserver;kvm', 'os=linux;windows']
enable=False
manager=nova.cells.manager.CellsManager
name=nova
topic=cells
conductor:
manager=nova.conductor.manager.ConductorManager
topic=conductor
use_local=False
spice:
agent_enabled=True
enabled=False
html5proxy_base_url=http://10.33.8.112:6082/spice_auto.html
keymap=en-us
server_listen=127.0.0.1
server_proxyclient_address=127.0.0.1
========================================================================
==== Native threads ====
========================================================================
Thread ID 139989669103360
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139989677496064
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990096934656
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990667343616
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990063363840
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990692521728
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990088541952
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990071756544
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990675736320
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990650558208
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990080149248
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990700914432
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990781155072
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139989685888768
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139989694281472
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990684129024
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139991167133504
/home/berrange/src/cloud/nova/nova/openstack/common/gurumed/generator.py:81 in get_model
None
/home/berrange/src/cloud/nova/nova/openstack/common/gurumed/generator.py:52 in create_report
None
/home/berrange/src/cloud/nova/nova/openstack/common/gurumed/report.py:42 in create
None
/home/berrange/src/cloud/nova/nova/openstack/common/gurumed/report.py:78 in dump
None
/home/berrange/src/cloud/nova/nova/openstack/common/gurumed/report.py:85 in __handle_signal
None
/usr/lib/python2.7/site-packages/eventlet/hubs/epolls.py:61 in do_poll
return self.poll.poll(seconds)
/usr/lib/python2.7/site-packages/eventlet/hubs/poll.py:84 in wait
presult = self.do_poll(seconds)
/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py:226 in run
self.wait(sleep_time)
Thread ID 139990658950912
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990789547776
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990046578432
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
Thread ID 139990054971136
/usr/lib64/python2.7/threading.py:243 in wait
waiter.acquire()
/usr/lib64/python2.7/Queue.py:168 in get
self.not_empty.wait()
/usr/lib/python2.7/site-packages/eventlet/tpool.py:68 in tworker
msg = reqq.get()
/usr/lib64/python2.7/threading.py:504 in run
self.__target(*self.__args, **self.__kwargs)
/usr/lib64/python2.7/threading.py:551 in __bootstrap_inner
self.run()
/usr/lib64/python2.7/threading.py:524 in __bootstrap
self.__bootstrap_inner()
========================================================================
==== Green threads ====
========================================================================
Thread ID 0
/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py:177 in switch
return self.greenlet.switch()
/usr/lib/python2.7/site-packages/eventlet/event.py:116 in wait
return hubs.get_hub().switch()
/home/berrange/src/cloud/nova/nova/utils.py:577 in wait
return self.done.wait()
/home/berrange/src/cloud/nova/nova/service.py:564 in wait
x.wait()
/home/berrange/src/cloud/nova/nova/service.py:148 in run_server
server.wait()
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:192 in main
result = function(*args, **kwargs)
Thread ID 1
/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py:177 in switch
return self.greenlet.switch()
/usr/lib/python2.7/site-packages/eventlet/green/select.py:70 in select
return hub.switch()
/usr/lib/python2.7/site-packages/qpid/compat.py:53 in wait
ready, _, _ = select([self], [], [], timeout)
/usr/lib/python2.7/site-packages/qpid/concurrency.py:96 in wait
sw.wait(timeout)
/usr/lib/python2.7/site-packages/qpid/concurrency.py:57 in wait
self.condition.wait(3)
/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py:193 in _wait
return self._waiter.wait(predicate, timeout=timeout)
/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py:208 in _ewait
result = self._wait(lambda: self.error or predicate(), timeout)
/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py:566 in _ewait
result = self.connection._ewait(lambda: self.error or predicate(), timeout)
/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py:50 in _ecwait
result = self._ewait(lambda: self.closed or predicate(), timeout)
/usr/lib/python2.7/site-packages/qpid/messaging/endpoints.py:660 in next_receiver
if self._ecwait(lambda: self.incoming, timeout):
<string>:6 in next_receiver
None
/home/berrange/src/cloud/nova/nova/openstack/common/rpc/impl_qpid.py:426 in _consume
nxt_receiver = self.session.next_receiver(timeout=timeout)
/home/berrange/src/cloud/nova/nova/openstack/common/rpc/impl_qpid.py:375 in ensure
return method(*args, **kwargs)
/home/berrange/src/cloud/nova/nova/openstack/common/rpc/impl_qpid.py:435 in iterconsume
yield self.ensure(_error_callback, _consume)
/home/berrange/src/cloud/nova/nova/openstack/common/rpc/impl_qpid.py:518 in consume
it.next()
/home/berrange/src/cloud/nova/nova/openstack/common/rpc/impl_qpid.py:526 in _consumer_thread
self.consume()
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:192 in main
result = function(*args, **kwargs)
Thread ID 2
/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py:177 in switch
return self.greenlet.switch()
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:30 in sleep
hub.switch()
/home/berrange/src/cloud/nova/nova/utils.py:638 in _inner
greenthread.sleep(idle)
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:192 in main
result = function(*args, **kwargs)
Thread ID 3
/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py:177 in switch
return self.greenlet.switch()
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:30 in sleep
hub.switch()
/home/berrange/src/cloud/nova/nova/utils.py:596 in _inner
greenthread.sleep(interval)
/usr/lib/python2.7/site-packages/eventlet/greenthread.py:192 in main
result = function(*args, **kwargs)
========================================================================
==== Package ====
========================================================================
Vendor: OpenStack Foundation
Product: OpenStack Nova
Version: 2013.1
========================================================================