Bugfix/dont crash on invalid homogeneous batch dataset #690
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.
The issue
Non-caught exceptions caused by real-world update scenarios thrown by a worker thread in parallel batch calculations cause fatal crashes.
Considerations
After investigation related to exceptions during thread creation/execution, the following findings were made:
std::thread
will be destructedstd::terminate()
PowerGridError
PowerGridBatchError
should be raisedstd::terminate()
std::terminate()
(fatal crash).PowerGridError
Preconditions
The above-mentioned bug solved in this PR arises when all of the following conditions are satisfied:
threading=0
orthreading=x
wherex >= 2
)These conditions trigger the following contributing factors:
The solution
The caching in which the exception was moved from the worker-thread setup part to all-scenario combined setup. This prevents non-handled exceptions from being raised in the worker thread