)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14bab737eb3f339c7091ca219f6347c965e23391","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"85fc594d_b745a966","line":14,"updated":"2026-03-11 11:20:13.000000000","message":"This feels like a regression test. Is there a `Related-bug` you can link?","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6d8a576b52113975ab44889c09e298c4ed6abb72","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e6fce9c0_a5e8336b","line":14,"in_reply_to":"85fc594d_b745a966","updated":"2026-03-22 13:11:46.000000000","message":"i filed https://bugs.launchpad.net/nova/+bug/2145135\n\n\n```\nRelated-bug: #2145135\n```\n\nwe have had a down stream bug of this for year bug never filed an upstream one \nalthough https://bugs.launchpad.net/nova/+bug/1855332 might also be cause by it.","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c5f0cf2e3ac3a0f670800c6fe85fd532d255c64","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Add functional tests for NUMA aware vswitches"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The existing NUMA tests were not covering NUMA affinity for physnets."},{"line_number":10,"context_line":"Added tests, one bypassing the scheduler and one not so we can"},{"line_number":11,"context_line":"the behavioral difference : when scheduler filter is not running, it"},{"line_number":12,"context_line":"is not passing down the limits to the compute so the claim misses the"},{"line_number":13,"context_line":"NUMA affinity as it doesn\u0027t enforce it by its own."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"c1c5a384_b1484d1b","line":10,"updated":"2026-03-26 14:03:10.000000000","message":"Two issues with the commit message:\n\n1. **Missing bug reference**: The topic is set to `bug/2145135` but there\u0027s no `Related-Bug:` or `Closes-Bug:` footer. Please add `Related-Bug: #2145135`.\n\n2. **Grammar**: \"so we can the behavioral difference\" is missing a verb — should be \"so we can *see* the behavioral difference\".","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14bab737eb3f339c7091ca219f6347c965e23391","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8791219f_4f970be4","updated":"2026-03-11 11:20:13.000000000","message":"-1 is for the internal reference","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b94b969e57935c60c5014442415fd55c496b7815","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"71e1bbcb_e2393034","updated":"2026-03-11 11:20:38.000000000","message":"looks like the fixture misses something","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6033c170ff880d97b0f97b58ad3528408066b700","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cc02f207_62fb687b","updated":"2026-03-11 16:12:14.000000000","message":"I need to open an upstream bug report but I first need to understand why sometimes limits aren\u0027t passed down to computes even if the scheduler filter is executed.","commit_id":"958bb043d4c17042431260c944840876ffeca38e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"79a790e4419da9a8c24703ca3ac784ff50663a31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bc90a1ce_01c57ebd","updated":"2026-03-11 17:48:50.000000000","message":"still trying to find the root cause","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b55e75af_e8caa24a","updated":"2026-03-13 08:51:50.000000000","message":"thanks a lot @smooney@redhat.com for the comments, I think we both agree on problem and on the solutions : we need to stop the fixture leakage which shouldn\u0027t pass down the limits (which is a behavioural change from the real code) and then the real bugfix should be about fixing the instance claim in compute to look over network metadata.\n\nMore to come next week.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"}],"nova/tests/functional/libvirt/test_numa_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a1694554c0475588a3eb3a60a31e9c0b5f93efb1","unresolved":true,"context_lines":[{"line_number":1493,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":1494,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"}],"source_content_type":"text/x-python","patch_set":1,"id":"961230bb_3acd4405","line":1496,"updated":"2026-03-11 11:20:51.000000000","message":"I\u0027d have expected to see `expectedFailure` here, assuming you haven\u0027t already fixed this issue?","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8fe7e516027c0497e0f0cbf22fb694e6191a7eba","unresolved":false,"context_lines":[{"line_number":1493,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":1494,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"}],"source_content_type":"text/x-python","patch_set":1,"id":"ec1188b6_768f22e4","line":1496,"in_reply_to":"513d0896_b88f1b70","updated":"2026-03-11 16:08:11.000000000","message":"Done","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d4fa03a381fe5d170ae97e1c059d026f0cf0ec99","unresolved":true,"context_lines":[{"line_number":1493,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":1494,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":1495,"context_line":""},{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"}],"source_content_type":"text/x-python","patch_set":1,"id":"513d0896_b88f1b70","line":1496,"in_reply_to":"961230bb_3acd4405","updated":"2026-03-11 14:31:51.000000000","message":"I just tried to reproduce the internal issue, can\u0027t yet find the root cause yet.","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14bab737eb3f339c7091ca219f6347c965e23391","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"},{"line_number":1500,"context_line":"        nova-compute ignores NUMA-aware vSwitch settings and pins CPUs"},{"line_number":1501,"context_line":"        on the wrong NUMA node despite the scheduler correctly accounting"},{"line_number":1502,"context_line":"        for physnet NUMA affinity."}],"source_content_type":"text/x-python","patch_set":1,"id":"26f5e294_77cf67be","line":1499,"range":{"start_line":1499,"start_character":33,"end_line":1499,"end_character":58},"updated":"2026-03-11 11:20:13.000000000","message":"This is an internal ticket. We should link to a launchpad ticket instead.","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d4fa03a381fe5d170ae97e1c059d026f0cf0ec99","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"},{"line_number":1500,"context_line":"        nova-compute ignores NUMA-aware vSwitch settings and pins CPUs"},{"line_number":1501,"context_line":"        on the wrong NUMA node despite the scheduler correctly accounting"},{"line_number":1502,"context_line":"        for physnet NUMA affinity."}],"source_content_type":"text/x-python","patch_set":1,"id":"a8490ff5_3f2b53c9","line":1499,"range":{"start_line":1499,"start_character":33,"end_line":1499,"end_character":58},"in_reply_to":"26f5e294_77cf67be","updated":"2026-03-11 14:31:51.000000000","message":"of course, once I\u0027m 100% sure that\u0027s it still a problem on the master branch","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8fe7e516027c0497e0f0cbf22fb694e6191a7eba","unresolved":false,"context_lines":[{"line_number":1496,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy(self):"},{"line_number":1497,"context_line":"        \"\"\"Verify NUMA node selection respects physnet affinity with pinning."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is a reproducer for OSPRH-10176 / OSPRH-13138 where"},{"line_number":1500,"context_line":"        nova-compute ignores NUMA-aware vSwitch settings and pins CPUs"},{"line_number":1501,"context_line":"        on the wrong NUMA node despite the scheduler correctly accounting"},{"line_number":1502,"context_line":"        for physnet NUMA affinity."}],"source_content_type":"text/x-python","patch_set":1,"id":"065b6b9f_7f6742a5","line":1499,"range":{"start_line":1499,"start_character":33,"end_line":1499,"end_character":58},"in_reply_to":"a8490ff5_3f2b53c9","updated":"2026-03-11 16:08:11.000000000","message":"Done","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"14bab737eb3f339c7091ca219f6347c965e23391","unresolved":true,"context_lines":[{"line_number":1556,"context_line":"            \"Pinned CPUs %s are not a subset of NUMA node 1 CPUs %s\" %"},{"line_number":1557,"context_line":"            (pinned_host_cpus, node1_cpus))"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy_other_node(self):"},{"line_number":1560,"context_line":"        \"\"\"Verify correct NUMA placement with physnet affinity to node 0."},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        Similar to test_create_server_with_physnet_and_dedicated_policy but"}],"source_content_type":"text/x-python","patch_set":1,"id":"222ca8db_d2c81270","line":1559,"updated":"2026-03-11 11:20:13.000000000","message":"I suspect this test would be more interesting if we instead filled the requested node to ensure we get a scheduling failure. Is that possible?","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d4fa03a381fe5d170ae97e1c059d026f0cf0ec99","unresolved":true,"context_lines":[{"line_number":1556,"context_line":"            \"Pinned CPUs %s are not a subset of NUMA node 1 CPUs %s\" %"},{"line_number":1557,"context_line":"            (pinned_host_cpus, node1_cpus))"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy_other_node(self):"},{"line_number":1560,"context_line":"        \"\"\"Verify correct NUMA placement with physnet affinity to node 0."},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        Similar to test_create_server_with_physnet_and_dedicated_policy but"}],"source_content_type":"text/x-python","patch_set":1,"id":"68bfa496_38d8c9c2","line":1559,"in_reply_to":"222ca8db_d2c81270","updated":"2026-03-11 14:31:51.000000000","message":"I\u0027ll try.","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8fe7e516027c0497e0f0cbf22fb694e6191a7eba","unresolved":false,"context_lines":[{"line_number":1556,"context_line":"            \"Pinned CPUs %s are not a subset of NUMA node 1 CPUs %s\" %"},{"line_number":1557,"context_line":"            (pinned_host_cpus, node1_cpus))"},{"line_number":1558,"context_line":""},{"line_number":1559,"context_line":"    def test_create_server_with_physnet_and_dedicated_policy_other_node(self):"},{"line_number":1560,"context_line":"        \"\"\"Verify correct NUMA placement with physnet affinity to node 0."},{"line_number":1561,"context_line":""},{"line_number":1562,"context_line":"        Similar to test_create_server_with_physnet_and_dedicated_policy but"}],"source_content_type":"text/x-python","patch_set":1,"id":"625a7d5d_a79d4679","line":1559,"in_reply_to":"68bfa496_38d8c9c2","updated":"2026-03-11 16:08:11.000000000","message":"Done","commit_id":"8e949cddb4602020ed34af2915105268c98f40d3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e20237e5481a7bf74b152212f88120e5013b2cb2","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"    def test_create_server_with_physnet_dedicated_and_shared_cpus(self):"},{"line_number":1497,"context_line":"        \"\"\"Demonstrate physnet NUMA affinity bug with a realistic DPDK setup."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is the closest reproducer to a real DPDK deployment: the host"},{"line_number":1500,"context_line":"        has shared CPUs for housekeeping on node 0 and dedicated CPUs on"},{"line_number":1501,"context_line":"        both NUMA nodes. With the scheduler bypassed, the compute claim"},{"line_number":1502,"context_line":"        ignores the physnet affinity and pins to the wrong node."}],"source_content_type":"text/x-python","patch_set":3,"id":"2d17279d_424fc996","line":1499,"range":{"start_line":1499,"start_character":49,"end_line":1499,"end_character":53},"updated":"2026-03-12 12:28:19.000000000","message":"dpdk is tneirly irrelevent to this for what its worth\nwhen we repoduced it in devstack we could trigger it with normal ovs\n\nyou just need to have declared the numa affinity forn the networks phsynet or tunnels and a vm wiht a numa toplgoy i.e. hw:mem_page_size\u003dsmall\n\nyou do not need cpu pinning or hugepages and certenly not ovs-dpdk","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":true,"context_lines":[{"line_number":1496,"context_line":"    def test_create_server_with_physnet_dedicated_and_shared_cpus(self):"},{"line_number":1497,"context_line":"        \"\"\"Demonstrate physnet NUMA affinity bug with a realistic DPDK setup."},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        This is the closest reproducer to a real DPDK deployment: the host"},{"line_number":1500,"context_line":"        has shared CPUs for housekeeping on node 0 and dedicated CPUs on"},{"line_number":1501,"context_line":"        both NUMA nodes. With the scheduler bypassed, the compute claim"},{"line_number":1502,"context_line":"        ignores the physnet affinity and pins to the wrong node."}],"source_content_type":"text/x-python","patch_set":3,"id":"06500e4c_54d53c12","line":1499,"range":{"start_line":1499,"start_character":49,"end_line":1499,"end_character":53},"in_reply_to":"2d17279d_424fc996","updated":"2026-03-13 08:51:50.000000000","message":"Good point, I\u0027ll clarify that.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e20237e5481a7bf74b152212f88120e5013b2cb2","unresolved":true,"context_lines":[{"line_number":1510,"context_line":"          (fewer free pCPUs) is tried first by the fitting logic"},{"line_number":1511,"context_line":"        - Physnet \u0027foo\u0027 has NUMA affinity to node 1 only"},{"line_number":1512,"context_line":"        - Flavor requests hw:cpu_policy\u003ddedicated, hw:numa_nodes\u003d1, 2 vCPUs"},{"line_number":1513,"context_line":"        - Scheduler NUMATopologyFilter is bypassed"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"        Both NUMA nodes have enough dedicated CPUs to fit 2 vCPUs, but"},{"line_number":1516,"context_line":"        physnet \u0027foo\u0027 requires node 1. Without the scheduler enforcing"}],"source_content_type":"text/x-python","patch_set":3,"id":"5beee7e2_6ff53ee9","line":1513,"range":{"start_line":1513,"start_character":8,"end_line":1513,"end_character":50},"updated":"2026-03-12 12:28:19.000000000","message":"i said this on irc but we do not pass the numa toplogy object or limits form the schduler to the compute.  that recomputed on the compute as the schduler vlaues can be stale today so we cannot trust them\n\nif your seeing a change in behvrior in these tests  by enablign or disabling the  filter then we are leaking info in our test setup.\nor in the production code.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":true,"context_lines":[{"line_number":1510,"context_line":"          (fewer free pCPUs) is tried first by the fitting logic"},{"line_number":1511,"context_line":"        - Physnet \u0027foo\u0027 has NUMA affinity to node 1 only"},{"line_number":1512,"context_line":"        - Flavor requests hw:cpu_policy\u003ddedicated, hw:numa_nodes\u003d1, 2 vCPUs"},{"line_number":1513,"context_line":"        - Scheduler NUMATopologyFilter is bypassed"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"        Both NUMA nodes have enough dedicated CPUs to fit 2 vCPUs, but"},{"line_number":1516,"context_line":"        physnet \u0027foo\u0027 requires node 1. Without the scheduler enforcing"}],"source_content_type":"text/x-python","patch_set":3,"id":"d714af8d_24794c32","line":1513,"range":{"start_line":1513,"start_character":8,"end_line":1513,"end_character":50},"in_reply_to":"5beee7e2_6ff53ee9","updated":"2026-03-13 08:51:50.000000000","message":"That would then explain why I\u0027m not able to reproduce the issue with functional tests, they behave different from the real code so I should find why and fix that (we shouldn\u0027t be passing down the limits)","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6d8a576b52113975ab44889c09e298c4ed6abb72","unresolved":true,"context_lines":[{"line_number":1510,"context_line":"          (fewer free pCPUs) is tried first by the fitting logic"},{"line_number":1511,"context_line":"        - Physnet \u0027foo\u0027 has NUMA affinity to node 1 only"},{"line_number":1512,"context_line":"        - Flavor requests hw:cpu_policy\u003ddedicated, hw:numa_nodes\u003d1, 2 vCPUs"},{"line_number":1513,"context_line":"        - Scheduler NUMATopologyFilter is bypassed"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"        Both NUMA nodes have enough dedicated CPUs to fit 2 vCPUs, but"},{"line_number":1516,"context_line":"        physnet \u0027foo\u0027 requires node 1. Without the scheduler enforcing"}],"source_content_type":"text/x-python","patch_set":3,"id":"8e60a3df_60cc0887","line":1513,"range":{"start_line":1513,"start_character":8,"end_line":1513,"end_character":50},"in_reply_to":"d714af8d_24794c32","updated":"2026-03-22 13:11:46.000000000","message":"so i i was wrong on this point.\n\nwe are not ment to be depening on the the shcduler popelulating the numa limits on teh compute node. that part is true but that is not how its impleitned today as a result the repoduce is valid as we are missing the logic to properly recondtuct the numa constratits in the instnace claim.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e20237e5481a7bf74b152212f88120e5013b2cb2","unresolved":true,"context_lines":[{"line_number":1533,"context_line":"        # (and therefore no network_metadata) are set in the limits passed"},{"line_number":1534,"context_line":"        # to the compute claim."},{"line_number":1535,"context_line":"        self.mock_filter.side_effect \u003d None"},{"line_number":1536,"context_line":"        self.mock_filter.return_value \u003d True"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"        self.start_compute(host_info\u003dhost_info)"},{"line_number":1539,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2a87801f_8b9d75d0","line":1536,"updated":"2026-03-12 12:28:19.000000000","message":"as i said we don\u0027t pass info form the schduler to the compute in this regard however the network_metadata shoudl eb pass alwasy indepently of the filter.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":true,"context_lines":[{"line_number":1533,"context_line":"        # (and therefore no network_metadata) are set in the limits passed"},{"line_number":1534,"context_line":"        # to the compute claim."},{"line_number":1535,"context_line":"        self.mock_filter.side_effect \u003d None"},{"line_number":1536,"context_line":"        self.mock_filter.return_value \u003d True"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"        self.start_compute(host_info\u003dhost_info)"},{"line_number":1539,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5b6176c0_242e40e5","line":1536,"in_reply_to":"2a87801f_8b9d75d0","updated":"2026-03-13 08:51:50.000000000","message":"agreed","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"818f833415505a40ba24112c04e1758acd7db9ad","unresolved":false,"context_lines":[{"line_number":1566,"context_line":"        # affinity; it cannot do so on its own."},{"line_number":1567,"context_line":"        self.assertEqual(0, inst.numa_topology.cells[0].id)"},{"line_number":1568,"context_line":""},{"line_number":1569,"context_line":"        pinned_host_cpus \u003d set("},{"line_number":1570,"context_line":"            inst.numa_topology.cells[0].cpu_pinning.values())"},{"line_number":1571,"context_line":"        node0_dedicated_cpus \u003d {2, 3}"},{"line_number":1572,"context_line":"        self.assertTrue("}],"source_content_type":"text/x-python","patch_set":3,"id":"6236688c_99acd174","line":1569,"updated":"2026-03-26 14:03:11.000000000","message":"Nit: Could use `self.assertLessEqual(pinned_host_cpus, node0_dedicated_cpus, ...)` instead — it uses the set `\u003c\u003d` operator and gives a clearer default failure message. Same applies to the similar assertion in the scheduled test below. Not a blocker, just a style option.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e20237e5481a7bf74b152212f88120e5013b2cb2","unresolved":true,"context_lines":[{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"        Comparing both tests proves that the scheduler is the only thing"},{"line_number":1593,"context_line":"        enforcing physnet NUMA affinity today; the compute claim alone"},{"line_number":1594,"context_line":"        cannot."},{"line_number":1595,"context_line":"        \"\"\""},{"line_number":1596,"context_line":"        self.flags(cpu_shared_set\u003d\u00270-1\u0027, group\u003d\u0027compute\u0027)"},{"line_number":1597,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00272-7\u0027, group\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df7079ce_26fde699","line":1594,"updated":"2026-03-12 12:28:19.000000000","message":"yes an no. its true that this regressed at somepoint or never worked but the fix cannot be based on the schduelr defining NUMATopologyLimits or passing it.\n\nthe fix has to be fixing the comptue to proeprly include the network_metadata","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6d8a576b52113975ab44889c09e298c4ed6abb72","unresolved":true,"context_lines":[{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"        Comparing both tests proves that the scheduler is the only thing"},{"line_number":1593,"context_line":"        enforcing physnet NUMA affinity today; the compute claim alone"},{"line_number":1594,"context_line":"        cannot."},{"line_number":1595,"context_line":"        \"\"\""},{"line_number":1596,"context_line":"        self.flags(cpu_shared_set\u003d\u00270-1\u0027, group\u003d\u0027compute\u0027)"},{"line_number":1597,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00272-7\u0027, group\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"28da22a1_0c4afa19","line":1594,"in_reply_to":"3abc04d2_b21c4a36","updated":"2026-03-22 13:11:46.000000000","message":"i filed the upstream bug for this by the way https://bugs.launchpad.net/nova/+bug/1855332 since there was none\n\nso turns out this only ever worked by relying on info form the schduleer because we only tested the happy path.\n\nwe have long held that we do nt supprot numa affintiy if the numa toplogy filter is disable but we have also alwasy desgiend every numa fetature to work assumeign the chsudler was misconfigured \nbut we dont oftent test that and in this case we missed that we are missing logic in the compute node to reconstuct the numa requirement in the compute node if the info is not provide by the schduler.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":true,"context_lines":[{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"        Comparing both tests proves that the scheduler is the only thing"},{"line_number":1593,"context_line":"        enforcing physnet NUMA affinity today; the compute claim alone"},{"line_number":1594,"context_line":"        cannot."},{"line_number":1595,"context_line":"        \"\"\""},{"line_number":1596,"context_line":"        self.flags(cpu_shared_set\u003d\u00270-1\u0027, group\u003d\u0027compute\u0027)"},{"line_number":1597,"context_line":"        self.flags(cpu_dedicated_set\u003d\u00272-7\u0027, group\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3abc04d2_b21c4a36","line":1594,"in_reply_to":"df7079ce_26fde699","updated":"2026-03-13 08:51:50.000000000","message":"agreed with that point, but I also need to fix the fixtures to not leak the limits then in order to reproduce the bug.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e20237e5481a7bf74b152212f88120e5013b2cb2","unresolved":true,"context_lines":[{"line_number":1641,"context_line":"        self.assertTrue("},{"line_number":1642,"context_line":"            pinned_host_cpus.issubset(node1_dedicated_cpus),"},{"line_number":1643,"context_line":"            \"Pinned CPUs %s are not a subset of NUMA node 1 dedicated \""},{"line_number":1644,"context_line":"            \"CPUs %s\" % (pinned_host_cpus, node1_dedicated_cpus))"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"    def test_reschedule_drops_network_metadata_from_request_spec(self):"},{"line_number":1647,"context_line":"        \"\"\"Demonstrate that network_metadata is lost from the RequestSpec"}],"source_content_type":"text/x-python","patch_set":3,"id":"519bcfa1_f34651e6","line":1644,"updated":"2026-03-12 12:28:19.000000000","message":"this does not actuly prove anything other then we are leaking some info\nin oru functional tests that wont be present in realisty.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c9510f0fb6fbe1a31e66a80c2ac585069c023b13","unresolved":true,"context_lines":[{"line_number":1641,"context_line":"        self.assertTrue("},{"line_number":1642,"context_line":"            pinned_host_cpus.issubset(node1_dedicated_cpus),"},{"line_number":1643,"context_line":"            \"Pinned CPUs %s are not a subset of NUMA node 1 dedicated \""},{"line_number":1644,"context_line":"            \"CPUs %s\" % (pinned_host_cpus, node1_dedicated_cpus))"},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"    def test_reschedule_drops_network_metadata_from_request_spec(self):"},{"line_number":1647,"context_line":"        \"\"\"Demonstrate that network_metadata is lost from the RequestSpec"}],"source_content_type":"text/x-python","patch_set":3,"id":"8f8d60f4_1b37faa6","line":1644,"in_reply_to":"519bcfa1_f34651e6","updated":"2026-03-13 08:51:50.000000000","message":"yup, needs to fix that.","commit_id":"63ac5f8a2a9f104261e5a1265bc4cf932a40e1a1"}]}
