)]}'
{"id":"openstack%2Foslo.log~1007557","triplet_id":"openstack%2Foslo.log~master~I54e197699e8ef9bb2a35a59f769356d1cedaf100","project":"openstack/oslo.log","branch":"master","hashtags":[],"change_id":"I54e197699e8ef9bb2a35a59f769356d1cedaf100","subject":"Fix native thread logging with the asyncio hub","status":"NEW","created":"2026-09-25 20:44:10.000000000","updated":"2026-09-25 22:18:48.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":"457dfeedd3845ffd6d4f7612cff15e598f06e185","_number":1007557,"virtual_id_number":1007557,"owner":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-25 22:18:48.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},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-25 22:18:48.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"}],"messages":[{"id":"1f1d40232d5fefb26c0425c001e27cacd799dc64","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"date":"2026-09-25 20:44:10.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"457dfeedd3845ffd6d4f7612cff15e598f06e185","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-25 22:18:48.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/95470d76cb56470d9c9b60d42780699a\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/78a3351e98da4f5eb5ee89af54847d38 : SUCCESS in 1h 29m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b3e4cc6c459a4100b5bf17416ac76ab0 : SUCCESS in 3m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/42e6eb965b194ca8908ddb20938ba308 : SUCCESS in 3m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/de2168aa53c1436596e54e9c42a266f7 : SUCCESS in 5m 52s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/c7a14a70e6b448e4a042fe67d388c04c : SUCCESS in 5m 56s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b3f4f5e73c9649afae54de774fedd2ff : SUCCESS in 4m 36s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0b9b8b08120d4bae95a648061c501b96 : SUCCESS in 2m 59s\n- oslo.log-src-grenade https://zuul.opendev.org/t/openstack/build/3e7c073b076c458f87ba40cfd9b2a305 : SUCCESS in 41m 02s (non-voting)\n- oslo.log-jsonformatter https://zuul.opendev.org/t/openstack/build/7271ec99dd4b478ea7138afb0b73f6b5 : SUCCESS in 21m 55s\n- oslo.log-tox-py312-eventlet-patched https://zuul.opendev.org/t/openstack/build/6c3dcb892b56423e89dd971a645ae6d2 : SUCCESS in 4m 33s\n- oslo.log-tox-py312-eventlet-patched-asyncio https://zuul.opendev.org/t/openstack/build/e8b65dfb4ca94336bc067c1d6447e0a0 : SUCCESS in 3m 05s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"d22e2f7524bdcb2e19ac499e7e02d4af5a73187d","revisions":{"d22e2f7524bdcb2e19ac499e7e02d4af5a73187d":{"kind":"REWORK","_number":1,"created":"2026-09-25 20:44:10.000000000","uploader":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"ref":"refs/changes/57/1007557/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.log","ref":"refs/changes/57/1007557/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.log refs/changes/57/1007557/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.log refs/changes/57/1007557/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.log refs/changes/57/1007557/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.log refs/changes/57/1007557/1"}}},"commit":{"parents":[{"commit":"1c0454956224e922bc9a322682016d201f813e2d","subject":"Make eventlet logging lock safe for native threads","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.log/commit/1c0454956224e922bc9a322682016d201f813e2d"}]}],"author":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-25 20:40:20.000000000","tz":-240},"committer":{"name":"Adam Harwell","email":"flux.adam@gmail.com","date":"2026-09-25 20:40:20.000000000","tz":-240},"subject":"Fix native thread logging with the asyncio hub","message":"Fix native thread logging with the asyncio hub\n\nWith eventlet\u0027s asyncio hub, log handler locks are _AsyncioMutex, whose\nacquire() always went through eventlet.asyncio.spawn_for_awaitable().\nIn a native thread without a hub, such as an eventlet.tpool worker,\nthat created an eventlet hub, and with it an asyncio event loop, just\nto take the lock. Creating the loop logs \"Using selector\" at DEBUG, so\nwith debug logging the record re-entered the lock half way through\nacquiring it. Eventlet stores a thread\u0027s hub before it creates the\nloop, so the nested acquire found a hub that could not run anything\nyet, and the thread\u0027s first log call raised AttributeError (\"\u0027Hub\u0027\nobject has no attribute \u0027sleep_event\u0027\"). A native thread that created\nits hub itself, for example in a monkey-patched time.sleep(), failed\nthe same way while the hub was set up.\n\nA thread without a working hub has no greenlets to exclude, so there\nthe mutex now takes only its RLock, which already excludes the other\nthreads. It records that it did not take the asyncio lock, so release()\nstill matches if the thread gets a hub while it holds the mutex.\n\nRelated-Bug: #1983863\nGenerated-By: Anthropic Claude Opus 5.5\nChange-Id: I54e197699e8ef9bb2a35a59f769356d1cedaf100\nSigned-off-by: Adam Harwell \u003cflux.adam@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.log/commit/d22e2f7524bdcb2e19ac499e7e02d4af5a73187d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.log/commit/d22e2f7524bdcb2e19ac499e7e02d4af5a73187d"}]},"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":"Backport-Candidate","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":"Backport-Candidate","description":"Backport candidate status","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":"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":"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":""}}}]}
