Ticket #7331 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

MantidPlot log window lockout

Reported by: Peter Peterson Owned by: Martyn Gigg
Priority: critical Milestone: Release 3.2
Component: GUI Keywords:
Cc: Blocked By:
Blocking: Tester: Peter Peterson

Description (last modified by Nick Draper) (diff)

This is seen clearly when running algorithms that have lots of logging and relatively quickly. What happens is that the main MantidPlot window locks up while printing log messages even though the algorithm has finished. You can keep better track of progress while watching the logging to the console which, generally, does not exhibit this problem.

A good candidate thing to run is CalibrateRectangularDetectors with logging set to information (or worse, debug). It runs tens (if not hundreds) of thousands of fits, and each one logs.

Change History

comment:1 Changed 7 years ago by Nick Draper

  • Owner changed from Nick Draper to Martyn Gigg
  • Status changed from new to assigned

I'm not sure if anything can be done with this, perhaps the answer is to warn developers of the cost of excessive logging?

What do you think?

comment:2 Changed 7 years ago by Peter Peterson

The annoyance is that the log window (aka console) of qtdeveloper does not have this problem displaying the same thing.

comment:3 Changed 7 years ago by Martyn Gigg

At the moment we write immediately to the log window when a signal is received. I think the answer is probably to have a the signals get queued and have a thread (outside gui) processing the queue. I might checkout the code in qtcreator to see what they do as it's been noticed before briefly that signals dispatched at high-rates can cause issues.

comment:4 Changed 7 years ago by Martyn Gigg

  • Milestone changed from Release 2.6 to Release 2.7

Batch move to 2.7

comment:5 Changed 7 years ago by Nick Draper

  • Status changed from assigned to new

comment:6 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 2.7 to Backlog

comment:7 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:8 Changed 7 years ago by Nick Draper

  • Component changed from Framework to User Interface
  • Description modified (diff)

comment:9 Changed 7 years ago by Martyn Gigg

  • Status changed from new to inprogress

Use QPlainTextEdit for log window rather than QTextEdit

It is only used for plain text and is much more light weight that the full text edit class. Refs #7331

Changeset: 4071b527f4f4b1d332a66ac7dc15af9e45483ac4

comment:10 Changed 7 years ago by Nick Draper

  • Milestone changed from Backlog to Release 3.0

moved to Release 3.0 as these all seem to be active

comment:11 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 3.0 to Backlog

Moved out to backlog as not enough time in R3.0

comment:12 Changed 6 years ago by Peter Peterson

I just merged this locally and it is much better than the old code. It still bogs down under heavy load, but significantly better than before. It would be great if this could get finished off for the current release.

comment:13 Changed 6 years ago by Martyn Gigg

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

Given that the simple change to a QPlainTextEdit seems to have made a big improvement and is worth doing alone I'll close this one now.

comment:14 Changed 6 years ago by Martyn Gigg

Branch: bugfix/7331_high_rate_logging

Tester: Use the CalibrateRectangularDetectors algorithm as suggested.

comment:15 Changed 6 years ago by Martyn Gigg

  • Milestone changed from Backlog to Release 3.2

comment:16 Changed 6 years ago by Peter Peterson

  • Status changed from verify to verifying
  • Tester set to Peter Peterson

comment:17 Changed 6 years ago by Peter Peterson

Better, but still could use more work. Especially when there is lots logged to warning.

comment:18 Changed 6 years ago by Pete Peterson

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/bugfix/7331_high_rate_logging'

Full changeset: b7b0803294d0c4ef60025287bff91118cc5a7be8

comment:19 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 8177

Note: See TracTickets for help on using tickets.