)]}'
{"id":"openstack%2Fnova~984480","triplet_id":"openstack%2Fnova~master~I879030569a5bc88442700d429ec9b46402ae5ed5","project":"openstack/nova","branch":"master","topic":"eventlet-removal","attention_set":{"9708":{"account":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"last_update":"2026-04-15 16:01:52.000000000","reason":"\u003cGERRIT_ACCOUNT_4690\u003e replied on the change","reason_account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}}},"removed_from_attention_set":{"4690":{"account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"last_update":"2026-04-15 16:01:52.000000000","reason":"\u003cGERRIT_ACCOUNT_4690\u003e replied on the change","reason_account":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}}},"hashtags":[],"change_id":"I879030569a5bc88442700d429ec9b46402ae5ed5","subject":"CellDatabases: replace shared lock with thread-local cell routing","status":"NEW","created":"2026-04-14 00:30:41.000000000","updated":"2026-04-15 16:01:52.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":3,"unresolved_comment_count":2,"work_in_progress":true,"has_review_started":true,"meta_rev_id":"2b9ea3c0eadb002d9f7699e6392752f660ef4da7","_number":984480,"virtual_id_number":984480,"owner":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-04-14 03:06:21.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2026-04-15 16:01:52.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]}],"REVIEWER":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"CC":[{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]}],"REVIEWER":[{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-04-14 01:09:20.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-04-14 03:06:21.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-04-15 13:56:33.000000000","updated_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"reviewer":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"state":"CC"}],"messages":[{"id":"dfbb75bdcd9751adb8e60353dd1bbf34eb8ba506","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-04-14 00:30:41.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b5f9f2d6b2094b4ae322b5ebc87ad5594121d2d4","tag":"autogenerated:gerrit:setWorkInProgress","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-04-14 00:35:03.000000000","message":"Set Work In Progress","accounts_in_message":[],"_revision_number":1},{"id":"d519cf1f9d0f5efdf081c17d8a4647fd178c9bfd","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-04-14 01:09:20.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I879030569a5bc88442700d429ec9b46402ae5ed5 .","accounts_in_message":[],"_revision_number":1},{"id":"55c36fea617227ccf6e38fb3d4d4ef1ff32a19aa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 03:06:21.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/ca28c90788f84bf595e5f503efd7cc6a\n\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/84b9e6e86e484b9997e0d64d7d2972c0 : SUCCESS in 35m 05s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/bcd1614709324e6fb49017fc5ef50696 : SUCCESS in 1h 03m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6a7df599dac24feabac6b46b108ae7a4 : SUCCESS in 1h 00m 57s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ce1eecace4044167a0e40af9e13e8ac5 : SUCCESS in 1h 16m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c5539ec190784044af8991e6aae3d72d : SUCCESS in 6m 00s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/0583c28bafbb4840b98fb52a82bb9cf5 : SUCCESS in 14m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/da8f8d79dd624629910a4c3008c2aedb : SUCCESS in 14m 32s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/83730b508bd24e7e990ff08dce3c663d : SUCCESS in 22m 48s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f06f782c4f3d45c9b254ab6672e272e5 : SUCCESS in 11m 50s\n- ironic-tempest-bios-ipmi-autodetect https://zuul.opendev.org/t/openstack/build/0c65de258c5344509abd1f5c19c9a46b : SUCCESS in 46m 38s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/7adead45de96458cb51bd18c4d65bfce : SUCCESS in 1h 44m 01s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/d3b0dacce0da4bb3a25e430049c64b87 : SUCCESS in 56m 45s\n- nova-vtpm https://zuul.opendev.org/t/openstack/build/a770ae39802a4cd4bacca6984b395838 : SUCCESS in 33m 04s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/e2976dcaf55a40cea392c150389e5ec5 : SUCCESS in 47m 48s\n- nova-live-migration-ceph https://zuul.opendev.org/t/openstack/build/28a43b49866f4bb589333f7f2b8eb77c : SUCCESS in 30m 53s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/8691f2195a214c9eab09e62dd2116f19 : SUCCESS in 2h 28m 19s\n- nova-next https://zuul.opendev.org/t/openstack/build/b4bc0a554b244f8fbfc826bb89bec002 : SUCCESS in 1h 43m 09s\n- nova-alt-configurations https://zuul.opendev.org/t/openstack/build/54f0cf6284c24380a52047ebacb03351 : SUCCESS in 52m 58s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/b7793c7b23a347a493460afae931edf9 : SUCCESS in 5m 17s (non-voting)\n- nova-tox-functional-py310 https://zuul.opendev.org/t/openstack/build/aa18e9e14ce14a4381c175990cfb46b3 : SUCCESS in 29m 38s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/d36f1a0d1ad24700aebb93bb351ac063 : SUCCESS in 24m 35s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/e98183ee5d684d0f8c9e29acb3d783a8 : FAILURE in 46m 20s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/38a5fd06b6e3447f9c13346bdfc8a90d : SUCCESS in 1h 35m 31s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/eb73c928835e4cb7a71ae3d73e3aaece : SUCCESS in 38m 42s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/f7b52ee98f4f418f946c4cb577f1b7d1 : SUCCESS in 30m 32s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/fce2380e586446f7be447575fbfd6f7b : SUCCESS in 34m 14s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/78a273a0243b4c6abc4bdabebab18707 : SUCCESS in 13m 57s","accounts_in_message":[],"_revision_number":1},{"id":"357c56d1c8c971061e15af2a3df79b0ad5c032ec","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 06:24:01.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9de68aae8c264efab3796dcbdc92e8c1\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/f7cf1ea198474834bc6fa7b8cb3df79f : SUCCESS in 20m 33s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/45a5ad75999849ae94b5b605255d2ccc : SUCCESS in 13m 39s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/4634e280e09a40caa5f87bf984d6492e : SUCCESS in 21m 35s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"950eaf314de18e9434675a91f10cb95d8a88c3f8","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2026-04-15 13:56:33.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2b9ea3c0eadb002d9f7699e6392752f660ef4da7","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2026-04-15 16:01:52.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"9b0508fa6b0347a851c7c347bbd9a0f1d44b24e4","revisions":{"9b0508fa6b0347a851c7c347bbd9a0f1d44b24e4":{"kind":"REWORK","_number":1,"created":"2026-04-14 00:30:41.000000000","uploader":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"ref":"refs/changes/80/984480/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/80/984480/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/80/984480/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/80/984480/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/80/984480/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/80/984480/1"}}},"commit":{"parents":[{"commit":"e302b8f6dd2f4ed210e69e2642758924229e51a0","subject":"Run functional test with threading mode","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/e302b8f6dd2f4ed210e69e2642758924229e51a0"}]}],"author":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-04-10 23:21:39.000000000","tz":-420},"committer":{"name":"melanie witt","email":"melwittt@gmail.com","date":"2026-04-14 00:28:22.000000000","tz":-420},"subject":"CellDatabases: replace shared lock with thread-local cell routing","message":"CellDatabases: replace shared lock with thread-local cell routing\n\nThe CellDatabases test fixture tracked the \"current cell\" via a shared\n_last_ctxt_mgr variable protected by a ReaderWriterLock.  Under native\nthreading, concurrent threads targeting different cells would overwrite\neach other\u0027s routing state, causing intermittent SQLite errors like\n\"cannot start a transaction within a transaction\" and\n\"(sqlite3.OperationalError) not an error\".\n\nReplace the shared variable and lock with threading.local(), which\nprovides per-thread storage under native threads and per-greenlet\nstorage under eventlet.  Each thread/greenlet now tracks its own\ntargeted cell independently, eliminating the race condition and the\nneed for locking, retries, and time.sleep() backoff.\n\nThis also fixes several tests that incorrectly used the original\ncontext instead of the yielded targeted context inside target_cell\nblocks.  These bugs were previously masked by the _last_ctxt_mgr\nhack, which implicitly routed untargeted DB access to whatever cell\nwas last targeted by any code path.\n\nWith these fixes, 10 SQLite-related entries can be removed from the\nthreading unit test exclude list.\n\nAssisted-by: Claude claude-opus-4-6 claude-code-2.1.101\nChange-Id: I879030569a5bc88442700d429ec9b46402ae5ed5\nSigned-off-by: melanie witt \u003cmelwittt@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/9b0508fa6b0347a851c7c347bbd9a0f1d44b24e4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/9b0508fa6b0347a851c7c347bbd9a0f1d44b24e4"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
