Debian Patches

Status for neutron/2:29.0.0-6

Patch Description Author Forwarded Bugs Origin Last update
fix-path-of-healthcheck_disable.patch Fix path of healthcheck_disable Thomas Goirand <zigo@debian.org> no 2022-11-14
fix-teardown.patch <short summary of the patch> TODO: Put a short summary on the line above and replace this paragraph
with a longer explanation of this change. Complete the meta-information
with other relevant fields (see below for details). To make it easier, the
information below has been extracted from the changelog. Adjust it or drop
it.
.
neutron (2:27.0.1-5) UNRELEASED; urgency=medium
.
* Back to old unit test list.
Thomas Goirand <zigo@debian.org> no
ovn-test-singleton-reset.patch Make the OVN test singletons explicitly resettable The OVN AgentCache and OVNClientPlacementExtension are
`@utils.SingletonDecorator` singletons whose cached instance lives as
long as any object holds a reference to it (e.g. a mechanism driver
keeping the agent cache, or an extension manager keeping the placement
extension). The unit tests relied on dropping their own reference to
reset them, which only works when nothing else holds the singleton: in
a test process running many test classes, a stale singleton leaks state
between the classes and the tests fail depending on which classes share
a worker. Add a drop() method to SingletonDecorator and call it in the
setUp of the tests that depend on these singletons, so they always
start with a fresh instance.

===================================================================
Thomas Goirand <zigo@debian.org> yes 2026-10-03
fix-test-state-leaks.patch Fix more module level state leaks between test classes Three test files (or the production code they exercise) keep state in
module level variables that survive the whole test runner process:
. neutron.tests.unit...test_qos registers a custom supported check
making the qos API extension supported by every plugin into
extensions.EXTENSION_SUPPORTED_CHECK_MAP and never removes it, so
the API app of every test class running afterwards merges the qos
attributes into the shared resource attribute map and the tests
asserting the exact request bodies fail (e.g. JSONV2TestCase). Add
an unregister_custom_supported_check() counterpart to
register_custom_supported_check() and clean up in the test.
. neutron.services.segments.db keeps two module level variables:
``reported_hosts`` keeps the hosts for which an agent was already
reported (the segment tests reuse hardcoded host names, so the
classes running after the one that reported them first skip the
report processing) and ``_USER_CONFIGURED_SEGMENT_PLUGIN`` caches
whether 'segments' is listed in ``cfg.CONF.service_plugins`` the
first time an agent event fires in the runner process, so a test
class without the segments service plugin poisons the check with
False and every later segment host mapping test silently stops
processing agent reports. Reset both in the test base.
. SriovSwitchMechVnicTypesTestCase overrides the module level
mech_driver.SRIOV_SUPPORTED_VNIC_TYPES and never restores it, so
the sriov test classes running afterwards cannot bind the vnic
types that were dropped from the list. Restore it in the cleanup.
Together with the OVN singletons fix this makes the `stestr run
--dynamic` builds deterministic for all the clusters observed so
far.

===================================================================
Thomas Goirand <zigo@debian.org> yes 2026-10-11
fix-test-manager-instance-leak.patch Fix NeutronManager instance leak in the plugin base v2 test test_can_load_core_plugin_without_datastore() calls manager.init()
without setting up a PluginFixture (setup_coreplugin()), so the
NeutronManager instance it creates survives the test. With the
stestr --dynamic scheduler, every test is scheduled as its own group,
so the test running next in the same worker process can be any other
test class: the per-test PluginDirectoryFixture hands it a fresh,
empty plugin directory, but manager.init() only instantiates a
NeutronManager when the directory is not loaded yet, and
NeutronManager.get_instance() returns the stale instance without
populating the fresh directory. The next
NeutronDbPluginV2TestCase-style test then fails during its setUp
with:
. AttributeError: 'NoneType' object has no attribute
'supported_extension_aliases'
(observed with
neutron.tests.unit.plugins.ml2.test_plugin.TestMl2SubnetsV2.
test_create_subnet_ipv6_attributes_no_dhcp_enabled).
Clear the manager instance in the test cleanup, like
neutron.tests.unit.extensions.test_timestamp already does.
yes 2026-10-11
fix-test-migration-fileconfig-leak.patch Make the fileConfig call of cli.main() a no-op in test_migration neutron.db.migration.cli.main() configures logging with
logging.config.fileConfig(neutron_alembic_ini), which defaults to
disable_existing_loggers=True and sets disabled=True on every logger
that already exists in the test process, silencing them for all the
tests running afterwards in the same worker. With the stestr --dynamic
scheduler, every test is scheduled as its own group, so the test
running next in the same worker process can be any other test class:
e.g. the assertLogs() of DNSForwarderResponderTestCase then captures
nothing and crashes with IndexError: list index out of range
(observed with
neutron.tests.unit.agent.l2.extensions.test_dns_forwarder.
DNSForwarderResponderTestCase.test__packet_in_handler_ipv4).
The TestCli tests only exercise command dispatch, so keep the
fileConfig call a no-op while they run cli.main() in-process.
yes 2026-10-11
fix-test-dns-forwarder-conf-registration.patch Register the DNS_FORWARDER options in the dns_forwarder test The DNS_FORWARDER configuration options are registered as an import
side effect of neutron.plugins.ml2.drivers.openvswitch.agent.common
.config, which the unit test tree only imports in the OVS agent test
classes (their setUp imports the OVS agent module). With the stestr
--dynamic scheduler, every test is scheduled as its own group, so
DNSForwarderResponderTestCase can share a worker process where none
of those classes ran before, and every test of the class then fails
during its setUp with:
. oslo_config.cfg.NoSuchOptError: no such option DNS_FORWARDER
in group [DEFAULT]
Register the options explicitly in the test setUp.
yes 2026-10-11
fix-test-dhcp-agent-fake-mutations.patch Do not mutate the module level fake fixtures in test_agent Two tests of neutron/tests/unit/agent/dhcp/test_agent.py modify the
module level fake fixtures in place, and the mutation survives the
whole test runner process:
. TestNetworkCache.test_stale_update_ignored puts the shared
fake_network NetModel into a real NetworkCache and then calls
put_port(fake_port2): NetworkCache.put_port() appends the port to
network.ports in place, so every test running afterwards that puts
fake_network into a cache sees the extra port (e.g.
test_put_network_existing fails with an extra port_lookup entry).
. TestDhcpAgentEventHandler.test_port_update_on_dhcp_agents_port_no_ip
_change sets payload['port']['device_id'] on the shared fake_port1
to the computed DHCP agent device id; test_setup_device_is_ready and
friends then find that port as an "existing" DHCP port in
_setup_existing_dhcp_port and never call create_dhcp_port
(assert_has_calls fails with "Actual: []").
With the stestr --dynamic scheduler, every test is scheduled as its
own group, so the tests running after these in the same worker
process can be any other test class, which made the unit test builds
fail nondeterministically (the alphabetical order of the class keeps
the victims before the poisoners in a single-process run).
Deep-copy the fixtures before mutating them.
yes 2026-10-11
fix-test-maintenance-thread-count.patch Make test_start_bounds_thread_pool_executor robust to foreign threads The test compared global threading.active_count() snapshots taken several
seconds apart, so any unrelated thread appearing or disappearing during
that window made it fail (e.g. "MismatchError: 3 != 4" seen in stestr
--dynamic builds when a thread leaked by a previously executed test class
exits in the meantime). Measure the property the test actually wants
instead: that the MaintenanceThread executor never runs two periodic tasks
concurrently. Wait for the tasks to complete with a bounded loop rather
than a bare sleep, and stop the MaintenanceThread deterministically in a
cleanup (its worker thread and executor thread would otherwise keep
running until the test process ends).
Thomas Goirand <zigo@debian.org> yes 2026-10-11
fix-test-resource-processing-queue-state.patch Fix class level state leaks in the resource processing queue tests ``ExclusiveResourceProcessor`` keeps ``_primaries`` and
``_resource_timestamps`` as class level dictionaries shared by all the
tests of the runner process. ``test_updates`` never exits the primary
processor it creates, so the tests running after it in the same
`stestr run --dynamic` worker create non-primary processors whose
``__exit__()`` is a no-op and stop cleaning ``_resource_timestamps``:
observed as ``test__exit__non_primary_does_not_clean_resource_
timestamps`` failing with the timestamp written by its own
``fetched_and_processed()`` still present. Exit the primary in
``test_updates`` and clear both dictionaries in ``setUp()`` so that
every test starts with a clean state.
Thomas Goirand <zigo@debian.org> yes 2026-10-17

All known versions for source package 'neutron'

Links