Opened 7 years ago

Closed 6 years ago

#384 closed defect (fixed)

Crashing mostly on Exit

Reported by: butler Owned by:
Priority: major Milestone: SasView 3.1.0
Component: SasView Keywords:
Cc: Work Package: SasView Bug Fixing

Description

The last several builds have been crashing, mostly on exit but not always with the following error popup with title of Microsoft Visual C++ Runtime Library

               Microsoft Visual C++ Runtime Library

Runtime Error!

Program: C:\Program Files (x86)\SasView\SasView.exe

R6025
- pure virtual function call

One has to click OK and it pops up again and again. Eventually clicking Ok a popup indicates SasView has crashed. No information is added to the log that can help debug more.

NOTE: this has been verified using windows installer version downloaded from ESS Jenkins builds.

Change History (3)

comment:1 Changed 6 years ago by butler

  • Milestone changed from SasView Next Release +1 to SasView 3.1

comment:2 Changed 6 years ago by krzywon

This is related to opening and closing (plot only?) windows. If you open multiple plot windows and close a few (but not all of them), the error is generated on closing. If you open multiple, but do not close any, no error is thrown. If you open multiple and close them all, no error occurs. This suggests the windows aren't completely destroyed on closing until all plots are closed. When the main program closes, it tries to close all known windows, but if they are already closed, they cannot be found, throwing the error.

comment:3 Changed 6 years ago by pkienzle

  • Resolution set to fixed
  • Status changed from new to closed

More details:

You don't need to delete the graph; you just need the graph to not have focus.

The crash happens during exit processing, specifically wx._core_.App_Cleanup.

For some reason, the App_CleanUp is triggering PlotPanel?.on_set_focus. I was unable to determine why this was happening, and couldn't remove it.

Instead, I traced the crash to data_panel.set_panel_on_focus, which updates the "Append Plot" dropdown with the list of active panels, and sets the string to the active panel.

The "fix" (aka ugly hack) is to modify the function to check if the "Append Plot" dropdown widget is being deleted before updating the widget.

Note: See TracTickets for help on using tickets.