)]}'
{"id":"openstack%2Fovsdbapp~1001407","triplet_id":"openstack%2Fovsdbapp~master~Ic120b547ed31987cafc10c5c5f37f729349f2be1","project":"openstack/ovsdbapp","branch":"master","attention_set":{},"removed_from_attention_set":{"5756":{"account":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"last_update":"2026-08-20 00:07:00.000000000","reason":"Change was submitted"},"8655":{"account":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"last_update":"2026-08-19 23:13:20.000000000","reason":"\u003cGERRIT_ACCOUNT_8655\u003e replied on the change","reason_account":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}}},"hashtags":[],"change_id":"Ic120b547ed31987cafc10c5c5f37f729349f2be1","subject":"Add lock acquire/lost callbacks","status":"MERGED","created":"2026-08-18 18:56:08.000000000","updated":"2026-08-20 00:07:55.000000000","submitted":"2026-08-20 00:07:00.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":8,"unresolved_comment_count":4,"has_review_started":true,"submission_id":"1001407","meta_rev_id":"0d9cfbcafcad6f9d4429e2126b325dd2556e7edf","_number":1001407,"virtual_id_number":1001407,"owner":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-20 00:07:00.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-08-19 23:13:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"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":{"approved":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-08-19 23:13:20.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"CC":[{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-18 19:34:35.000000000","updated_by":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"reviewer":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"state":"CC"},{"updated":"2026-08-18 20:05:31.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-08-19 15:22:50.000000000","updated_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"CC"},{"updated":"2026-08-19 23:13:20.000000000","updated_by":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"reviewer":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"state":"REVIEWER"}],"messages":[{"id":"9ef2192ad8c607e3cd529d9f0d7d501fd9674159","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"date":"2026-08-18 18:56:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"c7f53a09f271909d7b9285d470e74c7190917d39","author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"date":"2026-08-18 19:34:35.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"bfae21d18d3b10043f030c17dfb7ddad7fcd790d","author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"date":"2026-08-18 19:41:06.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"748b052bbd6ae160991f92edb5c973f46d236c3c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 20:05:31.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3ec228e848294899b306af81dc4c93a3\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b803f048eb034bdcb11175fc627e75a2 : SUCCESS in 2m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0e8992115df14068ac5fe8816174124d : SUCCESS in 3m 27s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/40ae93d2c75d47a199d7e0e6d9e13196 : SUCCESS in 3m 06s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0a0b5dc2bf6d482cbce1c343f2cc8063 : SUCCESS in 4m 19s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2011afbc732d419097f558b640de52c1 : SUCCESS in 4m 20s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/2210f16e070b49fbb0797630fbea653d : SUCCESS in 7m 38s\n- ovsdbapp-neutron-ovn-tempest-ovs-release https://zuul.opendev.org/t/openstack/build/bf3d904ba98445c6b2d592ca773ce26b : SUCCESS in 1h 02m 38s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/de56939dcb154beca6d6b98a363714f9 : SUCCESS in 49m 57s","accounts_in_message":[],"_revision_number":1},{"id":"ab36bbff36bf531ee9da021d00b0385d74ead89a","author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"date":"2026-08-19 13:43:29.000000000","message":"Patch Set 1:\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"62fe15901299c1b111e11b197d9ea5cee8115a11","author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"date":"2026-08-19 23:13:20.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"0671b8607ff1cb3a5c2a57ff4e5bbc85c86abd06","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 23:13:44.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"0930cda19ffa589141734c4ee7533d53e6c0f2af","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 00:07:00.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/e83102ae42554433a33b170490af721f\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7fbf38a29283424abcd0c87a8f291555 : SUCCESS in 3m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/8e67aba6706f498f836076e91eb8dbc5 : SUCCESS in 3m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8c8a8b427e9743e3a3a39a7945c1f44e : SUCCESS in 3m 31s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6774d5f14ad744f18c637ad2880cfb50 : SUCCESS in 8m 24s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/f501eb866d654883b225de6347b13ea0 : SUCCESS in 5m 38s\n- ovsdbapp-neutron-ovn-tempest-ovs-release https://zuul.opendev.org/t/openstack/build/11660232bd2e40dca3291d364e90e5f4 : SUCCESS in 52m 16s","accounts_in_message":[],"_revision_number":1},{"id":"252f586cc8f3f56e18e70a01a12d6d3045c44e7c","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 00:07:00.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"0d9cfbcafcad6f9d4429e2126b325dd2556e7edf","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-20 00:07:55.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c0715501ce544bb9b6bee90c33bd39fa\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/97248e9e61d34c608405ef0fdd7db85e : SUCCESS in 43s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"bb11a307c04dd18850e6a65518fd6fdcb0a92024","revisions":{"bb11a307c04dd18850e6a65518fd6fdcb0a92024":{"kind":"REWORK","_number":1,"created":"2026-08-18 18:56:08.000000000","uploader":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"ref":"refs/changes/07/1001407/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ovsdbapp","ref":"refs/changes/07/1001407/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/07/1001407/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/07/1001407/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ovsdbapp refs/changes/07/1001407/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ovsdbapp refs/changes/07/1001407/1"}}},"commit":{"parents":[{"commit":"eb233a075f361bece4ea8966cd605e8f986f6789","subject":"Merge \"Fix debug_venv to work with venv rework\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/eb233a075f361bece4ea8966cd605e8f986f6789"}]}],"author":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2026-08-18 18:51:33.000000000","tz":0},"committer":{"name":"Terry Wilson","email":"twilson@redhat.com","date":"2026-08-18 18:56:07.000000000","tz":0},"subject":"Add lock acquire/lost callbacks","message":"Add lock acquire/lost callbacks\n\nIt is common for workers to obtain an OVSDB lock to keep multiple\nworkers from doing maintenance tasks, like reconciling MySQL and\nOVN DBs. If a worker attempts to do a reconcile at startup and\ncheck\u0027s has_lock, it is possible that a stale lock from a previous\nworker will cause it to skip its task.\n\nAdding callbacks that fire on lock acquisition/loss resolves this\nissue. In addition, there was a bug with wait_for_change where a\nset_lock() call made before Connection.start() would cause\nwait_for_change to return before the initial OVSDB DB dump, which\ncould allow operations on an empty DB. This is fixed by only\nreturning while in the MONITORING state.\n\nChange-Id: Ic120b547ed31987cafc10c5c5f37f729349f2be1\nSigned-off-by: Terry Wilson \u003ctwilson@redhat.com\u003e\nAssisted-by: Claude Opus 4.6\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/bb11a307c04dd18850e6a65518fd6fdcb0a92024"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ovsdbapp/commit/bb11a307c04dd18850e6a65518fd6fdcb0a92024"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
