)]}'
{"id":"openstack%2Fwatcher~966690","triplet_id":"openstack%2Fwatcher~master~Ia77637fe830f1d2e2ebcb0e719802c1f366b1e31","project":"openstack/watcher","branch":"master","topic":"eventlet-removal","attention_set":{},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2025-11-28 17:41:45.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"Ia77637fe830f1d2e2ebcb0e719802c1f366b1e31","subject":"Fix database transaction conflicts in threading mode","status":"ABANDONED","created":"2025-11-11 15:38:17.000000000","updated":"2025-11-28 17:41:45.000000000","total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"9c2bfce9dd06afbae8c930f3fcd309088df9a02b","_number":966690,"virtual_id_number":966690,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2025-11-11 17:05:25.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":{"recommended":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":1,"date":"2025-11-11 18:27:20.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-11-11 17:05:25.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":"2025-11-11 18:27:20.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2025-11-18 11:29:06.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"CC"}],"messages":[{"id":"032408e80784fb17750b05006d7dc5464dc9edee","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-11-11 15:38:17.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"02374e657f7c9cde2cf2e8d2eb9f5cdd17208f52","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-11-11 15:40:51.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"545575820c08e5427943b69e22d268192ea6343d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-11-11 17:05:25.000000000","message":"Patch Set 2: 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/3ad201cfb99246b6a531ac6d5548b1d4\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4991b819448346d0bbd8246351b945fd : SUCCESS in 6m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/76e5114374704f149cd0c300074ff359 : FAILURE in 4m 37s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/0be3155d2f3b41f3a91bb34ebc7719d1 : SUCCESS in 5m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/54bf4f76bb00405a8e29386f1b9db7e0 : SUCCESS in 6m 56s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9d09617a342b4b3da639f0303abd75e8 : SUCCESS in 8m 12s\n- openstack-tox-py312-threading https://zuul.opendev.org/t/openstack/build/025843577b9a4ccea3283cb6cef24321 : SUCCESS in 4m 55s\n- watcher-tempest-functional https://zuul.opendev.org/t/openstack/build/342417c9deb54439892010e6c8cd536b : SUCCESS in 23m 28s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/4ff131eecf6045bea7ad98402bff6361 : SUCCESS in 45m 38s\n- watcher-tempest-strategies https://zuul.opendev.org/t/openstack/build/02848047a9bc42e88fe6fac22c663745 : FAILURE in 58m 44s\n- watcher-tempest-actuator https://zuul.opendev.org/t/openstack/build/f8456477b3744450828d3fe995b60af3 : SUCCESS in 46m 01s\n- watcher-tempest-functional-ipv6-only https://zuul.opendev.org/t/openstack/build/5356a37006d145b39ff219f5efdc3260 : SUCCESS in 31m 37s\n- watcher-prometheus-integration https://zuul.opendev.org/t/openstack/build/807f1ecd8eae459cb9067f4c5b17ce2a : SUCCESS in 1h 09m 38s\n- watcher-prometheus-integration-threading https://zuul.opendev.org/t/openstack/build/81d83af19d6749cb9a198635c7cd0799 : SUCCESS in 1h 20m 57s\n- watcher-aetos-integration https://zuul.opendev.org/t/openstack/build/14f92b4402d7400cb50c3e9fbd84cc01 : SUCCESS in 1h 18m 48s\n\nWarning:\n  Comments left for invalid file watcher/tests/applier/workflow_engine/test_taskflow_action_container.py","accounts_in_message":[],"_revision_number":2},{"id":"5f20555834a1e3c788761344605cb9b6a4c9c64f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-11-11 18:27:20.000000000","message":"Patch Set 2: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/219a6c45b25846788ab543c493736d7e\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/67d5f24c594f423ba3f9c596156c4c9b : SUCCESS in 2h 45m 09s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/6b4e89868d734f93bef79460d3224386 : SUCCESS in 1h 52m 09s","accounts_in_message":[],"_revision_number":2},{"id":"1bf4171ff06df59ea6cbd0a52c9c86fccfaa8f6e","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2025-11-18 11:29:06.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"9c2bfce9dd06afbae8c930f3fcd309088df9a02b","tag":"autogenerated:gerrit:abandon","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-11-28 17:41:45.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"5c5b3637abf87d24d749fa1129be185a4b196424","revisions":{"e1f26cbabccc767e4cb77ac1612e747a339d57d1":{"kind":"REWORK","_number":1,"created":"2025-11-11 15:38:17.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/90/966690/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/90/966690/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/90/966690/1"}}},"commit":{"parents":[{"commit":"14e58c28eb4c5a1f2db2f8c4c57e1553ce0a37e8","subject":"WIP - Adds support for threading mode in applier","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/14e58c28eb4c5a1f2db2f8c4c57e1553ce0a37e8"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-11-11 15:36:25.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-11-11 15:37:38.000000000","tz":0},"subject":"Fix database transaction conflicts in threading mode","message":"Fix database transaction conflicts in threading mode\n\nThis commit resolves SQLite transaction nesting errors that occurred\nwhen running the applier workflow engine in threading mode (non-eventlet).\n\nThe issue was caused by taskflow\u0027s parallel engine creating multiple\nOS threads that shared the same RequestContext, leading to conflicting\ndatabase transaction states stored in thread-local storage.\n\nChanges:\n\n1. Add InlineThread class (watcher/common/utils.py)\n   - Executes functions synchronously while maintaining thread interface\n   - Prevents nested threading when eventlet is not patched\n   - Captures exceptions and re-raises them in wait() to mimic actual\n     thread behavior\n\n2. Use serial engine for threading mode (watcher/applier/workflow_engine/default.py)\n   - Switches to taskflow serial engine when eventlet is not patched\n   - Maintains parallel engine with green threads for eventlet mode\n   - Ensures all database operations occur in a single thread context\n\nThese changes eliminate the \"cannot start a transaction within a\ntransaction\" error while preserving full functionality in both\nthreading and eventlet modes. All 27 workflow engine tests pass.\n\nGenerated-By: claude-code sonnet-4.5\nChange-Id: Ia77637fe830f1d2e2ebcb0e719802c1f366b1e31\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/e1f26cbabccc767e4cb77ac1612e747a339d57d1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/e1f26cbabccc767e4cb77ac1612e747a339d57d1"}]},"branch":"refs/heads/master"},"5c5b3637abf87d24d749fa1129be185a4b196424":{"kind":"REWORK","_number":2,"created":"2025-11-11 15:40:51.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/90/966690/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/90/966690/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/90/966690/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/90/966690/2"}}},"commit":{"parents":[{"commit":"14e58c28eb4c5a1f2db2f8c4c57e1553ce0a37e8","subject":"WIP - Adds support for threading mode in applier","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/14e58c28eb4c5a1f2db2f8c4c57e1553ce0a37e8"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-11-11 15:36:25.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2025-11-11 15:40:36.000000000","tz":0},"subject":"Fix database transaction conflicts in threading mode","message":"Fix database transaction conflicts in threading mode\n\nThis commit resolves SQLite transaction nesting errors that occurred\nwhen running the applier workflow engine in threading mode (non-eventlet).\n\nThe issue was caused by taskflow\u0027s parallel engine creating multiple\nOS threads that shared the same RequestContext, leading to conflicting\ndatabase transaction states stored in thread-local storage.\n\nChanges:\n\n1. Add InlineThread class (watcher/common/utils.py)\n   - Executes functions synchronously while maintaining thread interface\n   - Prevents nested threading when eventlet is not patched\n   - Captures exceptions and re-raises them in wait() to mimic actual\n     thread behavior\n\n2. Use serial engine for threading mode (watcher/applier/workflow_engine/default.py)\n   - Switches to taskflow serial engine when eventlet is not patched\n   - Maintains parallel engine with green threads for eventlet mode\n   - Ensures all database operations occur in a single thread context\n\nThese changes eliminate the \"cannot start a transaction within a\ntransaction\" error while preserving full functionality in both\nthreading and eventlet modes. All 27 workflow engine tests pass.\n\nGenerated-By: claude-code sonnet-4.5\nChange-Id: Ia77637fe830f1d2e2ebcb0e719802c1f366b1e31\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/5c5b3637abf87d24d749fa1129be185a4b196424"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/5c5b3637abf87d24d749fa1129be185a4b196424"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"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":{}}},{"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":{}}},{"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":{}}}]}
