GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Release linked sketch caches during UI cleanup by alken1t15 · Pull Request #1817 · solvespace/solvespace

Conversation

@alken1t15

@alken1t15 alken1t15 commented Nov 11, 2026

Copy link
Copy Markdown
Contributor

SolveSpaceUI::Clear() leaves the linked-sketch caches populated. Their cached Sketch objects are owned through raw pointers and need the explicit cleanup already provided by ClearLinkedSketches(). If a linked-file test runs last, shutdown leaks those objects and their allocations. Starting another sketch clears the caches, which makes the failure depend on the shuffled test order.

Call ClearLinkedSketches() during UI cleanup, covering application/CLI shutdown and test teardown.

This addresses the Ubuntu sanitizer failure reported in #1813. group/link/normal_roundtrip alone reproduces the same 45,428-byte leak in 17 allocations on master abf33ac. It also reproduces with the two helix files restored to their pre-#1813 versions from b34d744, so the leak predates that PR.

Tested in a Debug headless build with GCC 11.4, ENABLE_SANITIZERS=ON, ENABLE_OPENMP=ON, leak detection enabled and three OpenMP threads. The isolated reproducer and all 300 tests (1,246 checks) pass without sanitizer errors after the fix. The full suite used seed 2062209549 from the failing CI run; before the fix it reproduces the same leak. No interactive GUI testing was performed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@alken1t15
Release linked sketch caches during UI cleanup
7dc18ca
@alken1t15 alken1t15 mentioned this pull request Nov 11, 2026
Use cubic NURBS surfaces for helical sweeps #1813
Merged
@alken1t15

alken1t15 commented Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

@phkahler @ruevs Could you review this cleanup fix when you have a chance? It addresses the sanitizer leak reported in #1813. The isolated reproducer and the full 300-test suite pass locally with leak detection and OpenMP enabled after the change.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@alken1t15 alken1t15 mentioned this pull request Nov 11, 2026
Verify ill-conditioned full-rank Jacobians in the redundancy check #1818
Open
@phkahler
phkahler requested a balanced review from Copilot November 12, 2026 05:18
Copilot started reviewing on behalf of phkahler November 12, 2026 05:18
View session
Copilot AI reviewed Nov 12, 2026
View reviewed changes

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues were identified for the linked-sketch cache cleanup change.

No open issues 🎉

What changed in this PR

Releases linked-sketch caches during UI cleanup to address the order-dependent shutdown leak reported in #1813.

Changes:

  • Calls ClearLinkedSketches() from SolveSpaceUI::Clear(), covering application/CLI shutdown and test teardown.
File Description
src/​solvespace.cpp Adds explicit linked-sketch cache cleanup to SolveSpaceUI::Clear().

Review effort: Balanced

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@phkahler
phkahler merged commit e56db0d into solvespace:master Nov 12, 2026
4 checks passed

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@alken1t15 @phkahler
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.