Fix four crashes found by stacktrace triage - #14591
Open
magnesj wants to merge 4 commits into
Open
Conversation
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.
Fixes #14587
Fixes #14588
Fixes #14589
Fixes #14590
Four unrelated crashes found by triage of the stacktrace reports for 2026.06.1. One commit per issue.
#14587 Missing displacements in GeoMech intersections
Problem:
RivFemIntersectionGrid::cellCornerVertices()readsdisplacements[nodeIdx]based onisDisplacementsUsed()alone. The displacement vector is empty when reading displacements for the current time step fails, or when the part id is unknown, and the read goes out of bounds.Fix: Use displacements only when there is one displacement per node, the same guard as in
RivFemPartGeometryGeneratorandRivFemPartPartMgr.#14588 Project close while the main window is being destroyed
Problem: The main windows have
Qt::WA_DeleteOnClose. Events dispatched during~RiuMainWindow()can make Qt emitlastWindowClosed, which closes the project and callscleanupGuiBeforeProjectClose()on the window currently being destroyed.RiaGuiApplication::m_mainWindowis aQPointer, and is not cleared until~QObject()runs, so the existing null check does not catch this.Fix: Flag the window as being destroyed at the start of the destructor, and skip GUI cleanup for a window in that state. Both main windows are handled, as both use
WA_DeleteOnClose.#14589 Parse error in element property file
Problem:
RifElementPropertyTableReader::readData()throwsFileParseExceptionfor a malformed file. The exception propagates out ofRigFemPartResultsCollection::findOrLoadScalarResult()and through the Qt event loop, and terminates the application.Fix: Catch the exception where the file is read, log an error and return no data, as done for other file readers using
FileParseException.#14590 Missing grid data in a shared grid ensemble
Problem:
RimReservoirGridEnsemble::loadGridsInSharedMode()callseclipseCaseData()->setMainGrid()for all cases.RimEclipseResultCase::openAndReadActiveCellData()returns without creating case data if the grid file is missing or cannot be read, and the call is done on a null pointer.Fix: Skip cases without case data and log a warning, and guard the case data of the first case and an empty list of cases.