Remove dead AIP-44 trigger-over-BaseSerialization path (DAT.BASE_TRIGGER)#68528
Open
potiuk wants to merge 1 commit into
Open
Remove dead AIP-44 trigger-over-BaseSerialization path (DAT.BASE_TRIGGER)#68528potiuk wants to merge 1 commit into
potiuk wants to merge 1 commit into
Conversation
…GER) The DAT.BASE_TRIGGER encode/decode (serializing a BaseTrigger instance via BaseSerialization) is a vestige of AIP-44's Internal API. Live deferral uses the structured DeferTask/TIDeferredStatePayload (classpath+kwargs); the execution API stores the classpath opaquely; the triggerer imports it from the DB row. No external producer/consumer of DAT.BASE_TRIGGER remains. Keeps generic AirflowException serialization (live). Generated-by: Claude Opus 4.8 (1M context)
3 tasks
Member
Author
|
OK. @amoghrajesh @ashb -> I believe (and I made a deeper digging and trying to get historical look at it) we can simply remove the "dead code" that is not used any more. |
ashb
approved these changes
Jun 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes the
DAT.BASE_TRIGGERserialization path — encoding/decoding aBaseTriggerinstance throughBaseSerialization— which is dead code left over from AIP-44's Internal API:isinstance(var, BaseTrigger)), the decode branch (type_ == DAT.BASE_TRIGGER), theDAT.BASE_TRIGGERenum value, and the now-unusedBaseTriggerimport;TaskDeferredis also dropped from the exception-encode tuple —TaskDeferred(BaseException)'s only role there was carrying a trigger over the AIP-44 RPC.Generic
AirflowException/BASE_EXC_SERserialization is kept — it has live test coverage and an exception can still reach the serializer via XCom /next_kwargs/ theExtendedJSONcolumn.Why it's dead
The live deferral path never serializes a trigger through
BaseSerialization:DeferTask/TIDeferredStatePayloadfromdefer.trigger.serialize()(the trigger's own classpath + kwargs) — seetask_runner._defer_task.Trigger(classpath=<str>, encrypted_kwargs=<blob>)without instantiating anything (routes/task_instances.py); the triggerer later imports the classpath from the DB row.DAT.BASE_TRIGGERwas referenced only insideserialized_objects.py+enums.py+ tests — no external producer or consumer. (BaseTrigger.hashserializes the trigger's kwargs dict, not the trigger, so it never hit this branch.)Relationship to #67926 / #68511
DAT.BASE_TRIGGERdecode._safe_import_for_deserializegate on the exception decode (import_string(exc_cls_name)) protects a path this PR keeps live.