Make libvirt Tpool proxying conditional

When running in eventlet mode we keep the original eventlet.tpool usage
but when running in threading mode we call the functions directly on the
thread of the caller.

The patch_tpool_proxy() logic is removed from the libvirt driver as it
was only needed for python old style classes which is not in use any
more in python3 and the issue is not reproducible any more with
virConnect even without the patching.

❯ python3
Python 3.12.10 (main, Apr  9 2025, 04:44:59) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import eventlet
>>> eventlet.monkey_patch()
>>> from nova.virt.libvirt import host
>>> h = host.Host(uri="qemu:///system")
>>> h.get_connection()
libvirt:  error : internal error: could not initialize domain event timer
URI qemu:///system does not support events: internal error: could not initialize domain event timer
<libvirt.virConnect object at 0x7f829e94c170>
>>> c = h.get_connection()
>>> str(c)
'<libvirt.virConnect object at 0x7f829e94c170>'
>>>

Signed-off-by: Balazs Gibizer <gibi@redhat.com>
Change-Id: Ic60ab78cec2a9f9ba177568b69e738425e56cae1
This commit is contained in:
Balazs Gibizer
2025-07-27 16:05:12 +02:00
parent 8c8047ce2a
commit eda6792632
6 changed files with 30 additions and 65 deletions
+3 -42
View File
@@ -2,9 +2,11 @@ nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test
nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test_security_handshake_without_x509
nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test_security_handshake_with_x509
nova.tests.unit.test_context.ContextTestCase.test_scatter_gather_cells_queued_task_cancelled
# Wait until eventlet.Event is removed by https://review.opendev.org/c/openstack/nova/+/949754
nova.tests.unit.virt.libvirt.test_driver.CacheConcurrencyTestCase.test_different_fname_concurrency
nova.tests.unit.virt.libvirt.test_driver.CacheConcurrencyTestCase.test_same_fname_concurrency
nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_image_cache_disk_reservation
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_for_pcpu_reshape
@@ -18,47 +20,6 @@ nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_prov
nova.tests.unit.virt.libvirt.volume.test_mount.HostMountStateTestCase.test_mount_concurrent
nova.tests.unit.virt.libvirt.volume.test_mount.HostMountStateTestCase.test_mount_concurrent_no_interfere
nova.tests.unit.virt.libvirt.volume.test_mount.MountManagerTestCase.test_host_up_waits_for_completion
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_attach_detach_different_power_states
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_attach_detach_volume
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_block_stats
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_destroy_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_force_hard_reboot
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_console_output
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_diagnostics
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_info
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_instance_diagnostics
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_instance_disk_info
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_mks_console
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_serial_console
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_spice_console
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_vnc_console
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_live_migration
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_live_migration_force_complete
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_pause
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_poll_rebooting_instances
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_off
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_on_powered_off
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_on_running
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_reboot
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_rescue
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_restore_running
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_restore_soft_deleted
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_state_on_host_boot
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_suspended_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_unsuspended_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_set_admin_password
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_snapshot_running
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_soft_delete
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_spawn
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_suspend
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_swap_volume
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_trigger_crash_dump
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unpause_paused_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unpause_unpaused_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unplug_vifs_with_destroy_vifs_false
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unplug_vifs_with_destroy_vifs_true
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unrescue_rescued_instance
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unrescue_unrescued_instance
nova.tests.unit.virt.vmwareapi.test_vm_util.VMwareVMUtilTestCase.test_create_vm_invalid_guestid
# Independent failure ~10% with multiple possible error:
# - sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) not an error