Skip to content

Fix recurring Linux device, assembly, and shutdown crashes - #94

Open
Jubliano-sama wants to merge 3 commits into
dennisklappe:mainfrom
Jubliano-sama:fix/linux-crashes-v0.4
Open

Fix recurring Linux device, assembly, and shutdown crashes#94
Jubliano-sama wants to merge 3 commits into
dennisklappe:mainfrom
Jubliano-sama:fix/linux-crashes-v0.4

Conversation

@Jubliano-sama

Copy link
Copy Markdown

Description

Fix three independent crash paths observed in the Linux v0.4.0 AppImage:

  1. Backport OrcaSlicer's targeted WebKitGTK workaround for the hidden vue-resize <object> probe used by Mainsail < 2.16.1 and Fluidd < 1.37.0. The workaround is injected at document start and restored after RemoveAllUserScripts(). This is the reviewed fix from Fix Linux segfault when loading Fluidd/Mainsail printer hosts (#7210) OrcaSlicer/OrcaSlicer#13724 for Segfaults on Linux after connected to Mainsail/fluidd OrcaSlicer/OrcaSlicer#7210.
  2. Guard the assembly controls until both m_assemble_view_data and its model_objects_clipper() are available. The asynchronous reset callback performs the same lifetime check before dereferencing the clipper.
  3. Ignore late wxGTK EDITING_DONE events after application shutdown begins, before the callback can mark an already-reset plater canvas dirty.

The changes do not modify Wave Overhangs slicing behavior, presets, translations, or profile formats.

Crash evidence

  • Two dumps entered WebKit/JSC from the embedded Mainsail 2.14.0 device page and matched the vue-resize crash addressed upstream.
  • One dump faulted in GLCanvas3D::_render_assemble_control() after model_objects_clipper() returned null.
  • One dump faulted through ObjectList::OnEditingDone() -> Plater::set_current_canvas_as_dirty() while the application was closing.

Screenshots/Recordings/Graphs

Not applicable: these are lifetime and embedded-WebView crash fixes with no intended visual change.

Tests

  • git diff --check origin/main...HEAD
  • ./build_linux.sh -sir -j 6
    • Full release build completed (646/646).
    • OrcaSlicer_profile_validator built successfully.
    • AppImage dependency audit passed.
  • Generated OrcaSlicerWaveOverhangs_Linux_V2.4.0-dev.AppImage successfully.
    • SHA-256: b6dd59cea78081ca1444818fd00850e3adfcc9024f27679d62139cbbac175981
  • Launched the packaged AppImage on KDE Plasma/Wayland, restored the existing project, and closed it through the normal window-close path.
  • Confirmed the smoke test produced no new core dump.

No focused unit test currently covers wxGTK teardown event ordering or the embedded WebKit document lifecycle.

@Jubliano-sama
Jubliano-sama marked this pull request as ready for review August 23, 2026 14:17
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.

1 participant