Skip to content

Crash fixes based on OpenTelemetry reports#13873

Open
magnesj wants to merge 12 commits intodevfrom
crash-fixes-open-telemetry
Open

Crash fixes based on OpenTelemetry reports#13873
magnesj wants to merge 12 commits intodevfrom
crash-fixes-open-telemetry

Conversation

@magnesj
Copy link
Copy Markdown
Member

@magnesj magnesj commented Apr 14, 2026

Closes #13872
Closes #13874
Closes #13876
Closes #13877
Closes #13878
Closes #13881
Closes #13882
Closes #13883
Closes #13884
Closes #13885

magnesj added 6 commits April 14, 2026 20:52
Detach m_qwtPlotCurveForLegendText before the viewer check so it is
always detached before deletion. Add null check for curves in
detachPlotCurves, and explicitly call detachPlotCurves from
RimWellLogTrack::detachAllPlotItems to ensure curves are detached
before the track is destroyed.
… ensemble

Add parameter.isNumeric() guard and bounds check in RimCorrelationMatrixPlot::createMatrix(). Text parameters deduplicate values into fewer entries than ensemble cases, causing out-of-bounds access. Add defensive bounds check in RimParameterResultCrossPlot::createCaseData() for consistency.
Replace CVF_ASSERT with bounds checks returning std::unexpected with
descriptive error messages. Call site updated with TODO to propagate
the error when the receiving system is ready.
Replace CVF_ASSERT with an early return guard to prevent crash when
view is null or equals the master view. Also guard null pointer use
in RicSetMasterViewFeature.
@magnesj magnesj force-pushed the crash-fixes-open-telemetry branch from 91cfe6b to 2e1c262 Compare April 15, 2026 10:53
@magnesj magnesj force-pushed the crash-fixes-open-telemetry branch from c826af7 to 00ba5c3 Compare April 15, 2026 11:05
magnesj and others added 4 commits April 15, 2026 14:15
…exception

Uninitialized m_hdfFile caused a crash when the H5::H5File constructor
threw an exception, as the catch block called delete on a garbage pointer.
…delete to fix race

deleteChildrenAsync() spawns a std::thread that deletes old RimFileSummaryCase
objects concurrently with the OpenMP parallel loop in loadFileSummaryCaseData().
#pragma omp critical only synchronizes OMP threads, not std::threads, so OPM/HDF5
library state was accessed simultaneously from both, causing crashes.

Replace with clearWithoutDelete() + synchronous delete to preserve the observer
signal disconnection fix from #12262 while eliminating the thread race.
…ynamic NNC transfer

ecl_file_get_restart_view can return null when a timestep has no restart
view, and the result was passed unchecked into ERT functions. Also added a
null guard for grid and summaryView at the entry of transferNncFluxData to
prevent a crash in ecl_nnc_geometry_alloc on null grid.
…step reads to fix crash

Co-Authored-By: Magne Sjaastad <magne.sjaastad@yahoo.no>
@magnesj magnesj marked this pull request as ready for review April 15, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment