Commit Graph
19377 Commits
Author SHA1 Message Date
Magne Sjaastad 6913dfd320 Bump to 2026.06.1 v2026.06.1 2026-06-25 11:41:48 +02:00
Magne Sjaastad 65d9d568f2 Bump to 2026.06.1-RC_2 2026-06-25 10:52:16 +02:00
Magne Sjaastad d44a4c137d Allow sub-tasks to display progress 2026-06-25 10:51:34 +02:00
Magne Sjaastad c35df01105 Bump to 2026.06.1-RC_1 2026-06-25 09:57:52 +02:00
Magne Sjaastad 67f901acb7 #14306 Fix orphaned progress dialog when importing summary ensembles
Driving caf::ProgressInfo from worker threads inside the OpenMP loop in
loadFileSummaryCaseData() marshaled setProgress() to the GUI thread via a
queued connection. These updates could be delivered after the ProgressInfo
scope had ended and the progress stacks were popped, accessing an empty stack
and resurrecting the just-closed dialog stuck at 0% with no way to close it.

Only update the progress dialog from the master thread, using an atomic
counter for a monotonic progress value, and guard the ProgressInfo mutators
against stale updates delivered after the stacks are empty.
2026-06-25 09:51:41 +02:00
Magne Sjaastad 478bc96907 #14306 Guard progress dialog event processing against re-entrant recursion 2026-06-25 09:51:32 +02:00
Magne Sjaastad ecfbceddae #14306 Add test reproducing recursive event processing in progress dialog 2026-06-25 09:51:14 +02:00
Magne Sjaastad e0973e3055 CI: Include MSVC toolset version in vcpkg cache key
The vcpkg binary cache was restored on every Windows run, but vcpkg rejected all binaries and rebuilt from source. vcpkg keys each binary by an ABI hash that includes the MSVC toolset version, which was not part of the cache key (only OS, compiler name, vcpkg submodule SHA and the vcpkg-configuration.json hash). When the runner image bumps MSVC, the restored binaries become ABI-incompatible and vcpkg rebuilds everything. Because the cache key stays unchanged, the action skips saving the freshly built binaries, so the stale entry can never refresh and the rebuild loop persists across runs.

Add the MSVC toolset version (VCToolsVersion, exported by the MSVC setup step) to the cache key on Windows. A toolset bump now yields a new key, producing one cold rebuild followed by a successful save under the new key, after which subsequent runs restore from cache.
2026-06-25 08:12:37 +02:00
Kristian Bendiksen d552e5d5ad #14312 Exclude user input events while pumping the event loop during crash reporting
reportCrash pumps a nested Qt event loop from within the signal handler to
let the async crash-report HTTP POST finish. Pumping all events also
dispatches buffered mouse/keyboard events, which re-enter arbitrary UI code
mid-crash and can re-trigger the faulting path, causing a double-fault
inside the handler. Pump with QEventLoop::ExcludeUserInputEvents so socket
and timer events still flow (the reply completes) while user input is held
back.

Fixes #14312
2026-06-25 08:12:37 +02:00
Kristian Bendiksen fee59950fd #14311 Fix crash selecting a polygon-in-view with no polygon assigned
The polygon field was added to the UI ordering by value rather than by
address, so an empty (null) polygon reference resolved to the
PdmObjectHandle overload of PdmUiOrdering::add and aborted on the null
assertion while building the property panel. Pass the field by address so
the field-handle overload is used, matching the other add calls.

Fixes #14311
2026-06-25 08:12:37 +02:00
Magne Sjaastad 5536bce95f #14309 Open summary case without UNSMRY data file as empty reader
A SMSPEC file without a UNSMRY data file is re-read on every request for a summary vector, since RifReaderEclipseSummary::open returns false and no reader is cached. For an ensemble with multiple realizations missing UNSMRY, this is a severe performance problem.

Guard RifReaderEclipseSummary::open so that when no ESMRY, h5 or resdata data file is present, it returns true and creates a valid but empty reader. Skip ESMRY conversion when no UNSMRY is present, and add RifEclipseSummaryTools::hasSummaryDataFiles to detect the missing data file.
2026-06-25 08:12:37 +02:00
Magne Sjaastad 1e295b6265 #14309 Add tests for summary case without UNSMRY data file 2026-06-25 08:12:37 +02:00
Magne Sjaastad db7f88332a #14296 Fix spelling: tesselated -> tessellated 2026-06-24 14:52:16 +02:00
Magne Sjaastad d1f0c7304c #14296 Fix contour map crash on degenerate grid bounds 2026-06-24 14:52:16 +02:00
Magne Sjaastad b3196b364f #14298 Fix crash on out-of-range delta base time step in result info 2026-06-24 14:52:16 +02:00
Magne Sjaastad d830087e0e #14300 Guard flow diagnostics frame access against out-of-range time step 2026-06-24 14:52:16 +02:00
Magne Sjaastad d1712dd97a #14302 Fix crash deleting all linked views with active cell filters 2026-06-24 14:51:58 +02:00
Magne Sjaastad 8152605f2e #14294 Fix crash duplicating GeoMech property filters into linked view 2026-06-23 13:52:31 +02:00
Magne Sjaastad d71ee1176f #14292 Update stepping dimension after summary address change
When a summary vector is selected by manipulation of a curve, recompute the
source stepping dimension from the current curve content and refresh the
stepping toolbar. This keeps the toolbar consistent with the displayed vectors,
which is required for 3D view well selection to step the plot correctly.
2026-06-23 13:07:00 +02:00
Magne Sjaastad 9d92ac5229 #14285 Fix crash when text label projects to an undefined position 2026-06-23 07:40:38 +02:00
Magne Sjaastad 32c749fb67 #14266 Fix crash when activating combo box with stale option index 2026-06-23 07:40:29 +02:00
Magne Sjaastad a080cfb2e4 #14277 Hide property filter insert when not a collection child 2026-06-23 07:40:21 +02:00
Magne Sjaastad ca10e23de5 #14279 Guard line editor editing-finished against deleted field 2026-06-23 07:40:12 +02:00
Magne Sjaastad 0ce286972d #14283 Guard missing INTEHEAD keyword in Eclipse file readers
ecl_file_iget_named_kw() performs an unchecked vector access in ERT and
crashes (SIGSEGV) when the requested keyword does not exist in the active
file view. findAvailablePhases, readUnitsType and isExportedFromIntersect
called it for INTEHEAD without first checking the keyword is present. Guard
each call with ecl_file_get_num_named_kw(), matching the existing pattern in
this file.
2026-06-23 07:40:04 +02:00
Magne Sjaastad 0ef577eb5c #14287 Fix out-of-range access when computing Max Fraction Tracer result 2026-06-23 07:39:57 +02:00
Magne Sjaastad d5010f855d #14289 Guard against deleted result definition in geometry selection items 2026-06-23 07:39:47 +02:00
Magne Sjaastad 77cddc33d8 #14275 Fix crash in multi-plot axis alignment when a plot lacks the queried axis
QwtPlot::axisWidget() returns NULL for an axis id that is not valid for a
given plot. RiuMultiPlotPage::alignAxis dereferenced the returned
QwtScaleWidget without a null check, causing a segmentation fault when a
plot in the grid does not have the queried axis. Guard the pointer in both
alignment loops, matching the existing null-check style in the function.
2026-06-23 07:39:33 +02:00
Kristian Bendiksen 0e989ed1d9 #14270 Capture uncaught exception throw site in crash reports
Add a std::set_terminate handler (manageTerminate) that runs before the
stack unwinds when a C++ exception escapes the Qt event loop, so the
captured stack trace points at the original throw site instead of the
crash-logging plumbing reached via the SIGABRT signal handler. The
handler also recovers the exception type and message via
std::current_exception and reports them as crash attributes.

Remove the catch-and-rethrow around the event loop in RiaMain: that
handler unwound the stack to main before anything captured it, which
defeated the new terminate handler. The SIGABRT signal handler remains
as a fallback for direct abort()/assert() failures that do not go
through std::terminate.
2026-06-23 07:37:15 +02:00
Magne Sjaastad 7cdeff0061 #14281 Guard findReservoir against null main window 2026-06-22 16:20:13 +02:00
Magne Sjaastad ca819f7e74 #14262 Fix missing grid statistics context menu entries
The grid statistics plot and show commands were only added to the context menu when the cursor was inside the overlay info box, so right-clicking on the grid geometry no longer offered them. Always add the create and show commands, and keep only the copy-to-clipboard command gated by the info box position.
2026-06-22 12:15:10 +02:00
Magne Sjaastad d4eddadcd8 #14256 Import summary: Fix title in file browser
The file browser opened by Import Summary Case shared the general Eclipse
import dialog, which hardcoded the title to "Import Grid Model". Use
"Import Summary Case" when importing a summary file.
2026-06-22 09:10:17 +02:00
Magne Sjaastad c88bce79f3 Add workflow to create draft release with binaries on tag
On a tag push, wait for the Windows/Linux build (ResInsightWithCache.yml)
and the macOS build (ResInsightMac.yml) to finish, download their
application artifacts, zip them per platform, and create a draft GitHub
Release with the archives attached for maintainer review.
2026-06-22 09:02:45 +02:00
Kristian Bendiksen 36a2d84adf #14230 Fix deadlock when importing wells from OSDU
The GUI thread deadlocked on a non-recursive QMutex during OSDU well
import. The download-completion slots and DataLoadController::onTaskFinished
held a mutex while triggering progress updates, which call
QApplication::processEvents(). That re-enters the event loop and dispatches
another queued parquet-download-complete event for a different well, whose
handler then blocks trying to lock the same mutex.

Release the mutex before emitting taskDone in the OSDU well path and well
log data loaders, and before calling incrementProgress() in onTaskFinished.
The map access that the mutex protects stays inside the locked scope; the
captured ProgressInfo outlives the call (kept alive by blockUntilDone) and
incrementProgress() is thread-safe via self-marshaling to the GUI thread.

Fixes #14230.
2026-06-22 09:01:18 +02:00
Kristian Bendiksen 895148e4ef #12313 Investigate null pointer when destructing RimProject
Fixes #12313.
2026-06-22 08:59:43 +02:00
Magne Sjaastad b074d6e14e #14213 HDF5Exporter: Guard null m_hdfFile in createGroup 2026-06-22 08:58:59 +02:00
Magne Sjaastad 17e8a10f49 Update version to 2026.06 v2026.06.0 2026-06-12 09:08:41 +02:00
Magne Sjaastad 40ffb6b7c8 Update version to 2026.06.0-RC_5 2026-06-12 08:36:07 +02:00
Magne Sjaastad 6baee431a7 #14209 Guard contour map aggregation against out-of-range result index 2026-06-12 08:32:32 +02:00
Magne Sjaastad 44e32b840b #14205 Fix crash when reloading Roff or GRDECL grid
Guard against a null case pointer in findSummaryCaseFromEclipseResultCase. The reload path passes dynamic_cast<RimEclipseResultCase*> of the case, which is null for Roff and GRDECL input cases, causing a null dereference in RimCase::gridFileName().
2026-06-11 22:26:33 +02:00
Magne Sjaastad 3a3a53ff0f Add input guards to fortio_fread_buffer for parity with resdata PR #1189
Reject null buffers and negative buffer sizes up front, returning false instead of risking a null dereference or hitting util_abort. The buffer-overflow protection from the upstream fix is already present via #14144; these two input-validation guards are the remaining delta.
2026-06-11 22:26:07 +02:00
Magne Sjaastad 3be81f7103 Update version to 2026.06.0-RC_4 2026-06-11 16:29:04 +02:00
Magne Sjaastad 7f24637fa7 Show grid statistics context menu items only when clicking inside overlay info box 2026-06-11 16:29:04 +02:00
Magne Sjaastad a4246bfebc Expand newly created property filter in tree view 2026-06-11 16:29:04 +02:00
Magne Sjaastad 7b4ca01160 Display ensemble file set name in RimReservoirGridEnsemble 2026-06-11 16:29:04 +02:00
Magne Sjaastad f18a7784d9 Add project file keywords for 2026.06 2026-06-11 16:29:04 +02:00
Magne Sjaastad 0a33c49020 Block re-entrant progress event processing in notify 2026-06-11 16:29:04 +02:00
Magne Sjaastad ef73e82b0a Add license notice for nanoflann 2026-06-11 16:29:04 +02:00
Magne Sjaastad d656d55928 Refer to personal fork generically in crash-triage guide 2026-06-11 15:09:49 +02:00
Magne Sjaastad dc697f335c Add crash-triage agent guide for the stacktrace automation pipeline
Human-gated workflow that takes an unresolved crash signature from the
resinsight-system-doc registry, locates the real crash site in source,
proposes and build-verifies a minimal fix, then on approval files the OPM
issue, pushes a fix branch to the magnesj fork, opens the PR, and records
the outcome back on the signature. Uncertain cases get an explanatory note
instead of an issue or PR. This is step 3 of the weekly crash-triage flow.
2026-06-11 15:09:49 +02:00
Magne Sjaastad e9f9b2d70d Update version to 2026.06.0-RC_3 2026-06-10 18:09:15 +02:00