Skip to content

Stability fixes from regression test runs - #15072

Merged
magnesj merged 5 commits into
devfrom
stability-fixes
Oct 29, 2026
Merged

magnesj merged 5 commits into
devfrom
stability-fixes

Conversation

@magnesj

@magnesj magnesj commented Oct 29, 2026 •

Copy link
Copy Markdown
Member

Stability fixes found while running the regression tests, plus the 2026.11.0-RC_1 version bump.

  • Box intersection: guard against a missing view or case, and an invalid cell bounding box when computing default sizes and slider ranges.
  • Property editor: hide and detach stale field editor widgets, labels and buttons before deferred deletion. Widgets left visible in a reused parent accumulated and caused a stack overflow in recursive widget painting when the regression test runner selects all project objects.
  • Summary table: sort rows with equal first and last time step on category name. The previous order depended on string pool indices and changed between runs.
  • UpdateEditorsScheduler: the scheduler kept raw pointers to items scheduled for editor update. Items deleted before the timer fired caused an access violation, for example during closeProject(). Deleted items are now removed from the scheduler, and updates are processed one item at a time so items deleted during an update are skipped.

Unit tests added for the property editor widgets, summary table ordering and the scheduler.

The regression test base image for the Summary Table (WOPR) needs to be regenerated because of the deterministic ordering.

The plot window fix was moved to #15075.

Avoid asserting when the box intersection has no owning 3D view or the view has no case.
Deferred deletes are not processed by nested event loops, such as the processEvents() calls when the regression test runner selects all project objects. Stale labels, buttons and field editor widgets stayed visible in reused containers and accumulated, until QWidgetPrivate::paintSiblingsRecursive overflowed the stack. Hide and detach the widgets before calling deleteLater().
Rows with equal first and last time step kept the incoming address order, which depends on string pool indices and varies between sessions. Break ties on category name.
Remove deleted PdmUiItems from the scheduler, and process scheduled updates one item at a time so items deleted during an update are skipped.
@magnesj
magnesj merged commit 7b7cff1 into dev Oct 29, 2026
23 checks passed
@magnesj
magnesj deleted the stability-fixes branch October 29, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants