)]}'
{"id":"openstack%2Fnova~989029","triplet_id":"openstack%2Fnova~master~I0f0e97478cae43b826cabfa6c851df19eeee8290","project":"openstack/nova","branch":"master","topic":"bug/2028518","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-05-19 00:10:23.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I0f0e97478cae43b826cabfa6c851df19eeee8290","subject":"weights: add regression test for JSON log TypeError (bug 2028518)","status":"NEW","created":"2026-05-18 22:30:48.000000000","updated":"2026-05-19 00:23:17.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"9868fa99f2e42d7dfad93527deb21ac53faccb1d","_number":989029,"virtual_id_number":989029,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-19 00:10:15.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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"]}],"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":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-18 23:29:07.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-05-19 00:10:15.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-05-19 00:10:23.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"}],"messages":[{"id":"e681c57af9df0bd8d6a0a464e56755761a922d73","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-05-18 22:30:48.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"13336e88ef39e7a3998ee30dc58e9f0aaf433af5","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-05-18 23:29:07.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/I0f0e97478cae43b826cabfa6c851df19eeee8290 .","accounts_in_message":[],"_revision_number":1},{"id":"bbe2df7eda5fd8888f065b575ea77f73943e55b9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-19 00:10:15.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3adf473374a649199b188d23c7aa11dd\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/cc5008ac725c4dbf803347bc8c7ed90e : SUCCESS in 1h 34m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2ecc11de1bc4458d888d1e70f00a3924 : SUCCESS in 7m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b37f2a62718448b8b951b84f807401c3 : SUCCESS in 10m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/64146361d9ec480f981e14b4ee368824 : SUCCESS in 14m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d99fbb7ce7c64ea6af1a4d5ed911138b : SUCCESS in 18m 56s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/03319e7c0f50420d805ad0fa1fb66a8f : SUCCESS in 11m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3279acee6bd04731bdc5c1b9c07bbdfb : SUCCESS in 16m 26s\n- nova-graceful-shutdown https://zuul.opendev.org/t/openstack/build/fa9a63ab697c4647893682e1535a5543 : SUCCESS in 1h 11m 00s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/394c9fb2471b465bb52d63475b217b07 : SUCCESS in 5m 18s (non-voting)\n- nova-tox-functional-py311 https://zuul.opendev.org/t/openstack/build/31898353f26b423eb8f13bdaca191029 : SUCCESS in 27m 09s\n- nova-tox-functional-py313 https://zuul.opendev.org/t/openstack/build/3f295b07496c4157ad434f6dbd64471d : SUCCESS in 23m 00s\n- nova-tox-functional-py313-threading https://zuul.opendev.org/t/openstack/build/fde5eccedf1a40ab951139054ad5ba9c : FAILURE in 50m 03s (non-voting)\n- nova-tox-py313-threading https://zuul.opendev.org/t/openstack/build/adbd1e2a27784e598fb900a3a08fbfbc : SUCCESS in 13m 28s","accounts_in_message":[],"_revision_number":1},{"id":"23d9afbee2439e4581c1f8a78b565f46bb9f4065","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-05-19 00:19:58.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"9868fa99f2e42d7dfad93527deb21ac53faccb1d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-19 00:23:17.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/09de8a0356f54f54bc38de54f332c0bc\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/f61cd44bea534249a9c379ed4867a732 : SUCCESS in 21m 19s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/bc8e2fc40645467d8d6cdb16274a09c3 : SUCCESS in 14m 47s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/5ca79dca735a42c3b15672d9e2095ef7 : SUCCESS in 22m 08s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"8b92bb275c3f690637bc91c45751bcf53fd98aaa","revisions":{"8b92bb275c3f690637bc91c45751bcf53fd98aaa":{"kind":"REWORK","_number":1,"created":"2026-05-18 22:30:48.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/29/989029/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/29/989029/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/29/989029/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/29/989029/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/29/989029/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/29/989029/1"}}},"commit":{"parents":[{"commit":"3eff2a3078e759f103a527fed1b1091b010caadd","subject":"Merge \"Fix usage count when user-scoped quota is set\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3eff2a3078e759f103a527fed1b1091b010caadd"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-05-18 20:01:57.000000000","tz":60},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-05-18 22:30:30.000000000","tz":60},"subject":"weights: add regression test for JSON log TypeError (bug 2028518)","message":"weights: add regression test for JSON log TypeError (bug 2028518)\n\nWhen use_json\u003dTrue is configured, oslo.log\u0027s JSONFormatter calls\njson.dumps() on log record args. The scheduler weight debug log was\nbuilding dicts with tuple keys, which json.dumps() cannot serialize,\nraising TypeError. The bug does not manifest with the default plain-text\nformatter because it never calls json.dumps() on log arguments.\n\nAdd a regression test that enables the JSONFormatter on the nova.weights\nlogger and asserts that TypeError is raised when get_weighed_objects()\nlogs weight data with the unfixed tuple dict keys.\n\nRelated-Bug: #2028518\nChange-Id: I0f0e97478cae43b826cabfa6c851df19eeee8290\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/8b92bb275c3f690637bc91c45751bcf53fd98aaa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/8b92bb275c3f690637bc91c45751bcf53fd98aaa"}]},"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"},{"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":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
