Ticket #5600 (closed: fixed)

Opened 8 years ago

Last modified 5 years ago

Closing MantidPlot while an algorithm is running causes a segmentation fault

Reported by: Russell Taylor Owned by: Russell Taylor
Priority: minor Milestone: Release 2.2
Component: MantidPlot Keywords:
Cc: Blocked By:
Blocking: Tester: Vickie Lynch

Description

While this is not critically important, we should fix it.

The crashes seem to happen at a logging call, but that's not important: basically, we need to cancel all running algorithms before exiting (at the moment this only happens if running from a script).

N.B. This is seen on all platforms. A good algorithm to try it on is MonitorLiveData (kicked off by StartLiveData). Extremely simple algorithms (e.g. Pause) don't show up the problem.

Change History

comment:1 Changed 8 years ago by Russell Taylor

  • Status changed from new to accepted

comment:2 Changed 8 years ago by Russell Taylor

Re #5600. Cancel all running algorithms before MantidPlot shuts down.

Otherwise a seg fault is pretty much guaranteed once the logging framework has been shut down. This issue comes to the fore with live data runs.

Changeset: 934412f7ceb0b00d9e538ef8a6ac1b324761db43

comment:3 Changed 8 years ago by Russell Taylor

Re #5600. Add a check for cancellation after exec() has completed.

Allows algorithms that don't check for cancellation to be recorded as cancelled rather than running to completion. Helps scripts to stop. (Note that such algorithms are few as any that use openmp or progress reporting will be checking the cancellation flag.)

Changeset: 69cccac557cb5273682306bddd85f9ecf0012b01

comment:4 Changed 8 years ago by Russell Taylor

  • Status changed from accepted to verify
  • Resolution set to fixed

Exits should be clean now.

comment:5 Changed 8 years ago by Russell Taylor

Re #5600. Cancel all running algorithms before MantidPlot shuts down.

Otherwise a seg fault is pretty much guaranteed once the logging framework has been shut down. This issue comes to the fore with live data runs.

Changeset: 934412f7ceb0b00d9e538ef8a6ac1b324761db43

comment:6 Changed 8 years ago by Russell Taylor

Re #5600. Add a check for cancellation after exec() has completed.

Allows algorithms that don't check for cancellation to be recorded as cancelled rather than running to completion. Helps scripts to stop. (Note that such algorithms are few as any that use openmp or progress reporting will be checking the cancellation flag.)

Changeset: 69cccac557cb5273682306bddd85f9ecf0012b01

comment:7 Changed 8 years ago by Vickie Lynch

  • Status changed from verify to verifying
  • Tester set to Vickie Lynch

comment:8 Changed 8 years ago by Vickie Lynch

  • Status changed from verifying to closed

Had seven threads running MonitorLiveData when I closed MantidPlot. No crash.

comment:9 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 6446

Note: See TracTickets for help on using tickets.