BFD-4841: Improve IDR Pipeline error handling - #3244
Merged
Conversation
malessi
commented
Aug 5, 2026
malessi
force-pushed
the
alessio/BFD-4841__fix-exception-handling
branch
from
August 5, 2026 19:16
dfe255a to
1c8e8f1
Compare
Base automatically changed from
alessio/BFD-4576__autorun-idr-validator
to
master
August 5, 2026 19:35
malessi
force-pushed
the
alessio/BFD-4841__fix-exception-handling
branch
from
August 5, 2026 20:50
1c8e8f1 to
acb4779
Compare
malessi
marked this pull request as ready for review
August 5, 2026 21:00
malessi
requested review from
alex-dzeda,
aschey-forpeople,
mel1-G and
mjburling
as code owners
August 5, 2026 21:00
malessi
commented
Aug 5, 2026
aschey-forpeople
approved these changes
Aug 6, 2026
|
malessi
enabled auto-merge
August 7, 2026 15:01
JFisk42
approved these changes
Aug 12, 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.





JIRA Ticket:
BFD-4841
What Does This PR Do?
This PR fixes a variety of issues with the way the IDR Pipeline manages unhandled
Exceptions between background/subprocess workers (e.g.LoadingBatchWorkeror any of theParallelStageExecutorjobs).The most notable improvements are:
Exceptions retain their full context and stack trace regardless of which process they wereraised in allowing us to more easily see where an unhandled error occurredExceptionnot have all of its context? This occurred becauseException"tracebacks" (a.k.a stack traces) are not preserved when anExceptionis "pickled" (serialized) across processes. We now do this serialization manually usingtblib, so all context is preservedraiseingExceptions in a signal handler has been suppressed making it much easier to see the realExceptionin the logsExceptionsraised when extracting/loading a table/BaseModel-derived model are now wrapped by a customExceptionthat is explicit about which table failed to loadAltogether, the error handling is significantly improved and we should be able to determine the cause of issues much more easily.
What Should Reviewers Watch For?
If you're reviewing this PR, please check for these things in particular:
What Security Implications Does This PR Have?
Please indicate if this PR does any of the following:
Adds any new software dependencies
tblib. I will not merge until @sb-benohe approves.Modifies any security controlsAdds new transmission or storage of dataAny other changes that could possibly affect security?I have considered the above security implications as it relates to this PR. (If one or more of the above apply, it cannot be merged without the ISSO or team security engineer's (
@sb-benohe) approval.)I have created tests to sufficiently ensure the reliability of my code, if applicable. If this is a modification to an existing piece of code, I have audited the associated tests to ensure everything works as expected.
Validation
Have you fully verified and tested these changes? Is the acceptance criteria met? Please provide reproducible testing instructions, code snippets, or screenshots as applicable.
raiseing variousExceptions in multiple different parts of the IDR Pipeline that run in subprocesses, validating that:Exceptioncontext is logged upon exit