Uh oh!
There was an error while loading. Please reload this page.
Add async task store accessors for async tasks - #68232
Conversation
d61e93b to
6b41fddCompareIt would be good if @ashb or @amoghrajesh could validate this PR. |
amoghrajesh
commented
Jun 10, 2026
I do not have b/w as of today, but I would wanna take a look at this one tomorrow. |
7460b4d to
a51d715CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
7fbc338 to
6251981Compare
amoghrajesh
left a comment
There was a problem hiding this comment.
The async boundary is at the task-supervisor socket. The supervisor is a separate OS process entirely and whatever it does (sync HTTP, sync DB) is irrelevant to the task event loop. The task just awaits the socket response via asyncio.to_thread, which parks in a thread pool without blocking the event loop.
The description says that "wiring the execution API routes to the async DB path via MetastoreStateStoreBackend.aset" is genuinely not what this PR does, and more importantly, it does not need to do that. The fix is complete at the socket layer.
You will have to edit that to avoid confusion and requesting changes to avoid accidental merge with missing adelete / aclear now.
Uh oh!
There was an error while loading. Please reload this page.
guan404ming
commented
Jun 15, 2026
Good catch, just added adelete and aclear so an async task can clean up without falling back to the blocking sync calls. |
71d2ffe to
47134bbCompareguan404ming
commented
Jun 17, 2026
Hi @amoghrajesh gentle ping. PTAL, thanks! |
47134bb to
6a8644bCompareguan404ming
commented
Jun 23, 2026
Hi @amoghrajesh gentle ping. PTAL, thanks! |
52901b0 to
2e3b501Compare2e3b501 to
1864bb2Compareguan404ming
commented
Jul 5, 2026
Hi @amoghrajesh could you help take another look, thanks! |
amoghrajesh
commented
Jul 6, 2026
@guan404ming hello, I will take a look today |
amoghrajesh
left a comment
There was a problem hiding this comment.
Looks much better now, last set of comments, otherwise looks good.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
1864bb2 to
8c3f1dcCompare
amoghrajesh
left a comment
There was a problem hiding this comment.
LGTM. @kaxil wanna take another look?
guan404ming
commented
Jul 6, 2026
Thanks @amoghrajesh ! |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
c9c382f to
7e8440bCompareSigned-off-by: Guan-Ming (Wesley) Chiu <105915352+guan404ming@users.noreply.github.com>
Signed-off-by: Guan-Ming (Wesley) Chiu <105915352+guan404ming@users.noreply.github.com>
7e8440b to
4d10476Compareamoghrajesh
commented
Jul 9, 2026
@guan404ming seems good enough for now, we can merge once CI is green. |
guan404ming
commented
Jul 9, 2026
Sure, ci looks all green. I am going to merge this, thanks for all reviews! |
Uh oh!
There was an error while loading. Please reload this page.
dabla
commented
Jul 11, 2026
Nice one, we finally got it merged :-) |
Related Issue
closes#68214
Why
Async
@taskfunctions could not checkpoint to task state store because the existing get/set/delete/clear block the event loop.How
Was generative AI tooling used to co-author this PR?
Claude Code with Claude Opus 4.8
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.