Holding down blank hotkeys for a few seconds crashes OpenLP

Bug #1622911 reported by Azaziah
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenLP
Fix Committed
Low
Unassigned

Bug Description

If blank to x hotkey is held for a couple of seconds,
OpenLP becomes unresponsive and crashes.

Ideal solution would be to have the code execute only when
the key is pressed once, not when it's held.

Win 10 2.4.2 / trunk 2695

Traceback:

Traceback (most recent call last):
  File "E:\bzr\openlp\global-hotkeys\openlp\core\ui\slidecontroller.py", line 1044, in on_hide_display
    self.hide_plugin(checked)
  File "E:\bzr\openlp\global-hotkeys\openlp\core\ui\slidecontroller.py", line 1083, in hide_plugin
    Registry().execute('live_display_show')
  File "E:\bzr\openlp\global-hotkeys\openlp\core\common\registry.py", line 137, in execute
    result = function(*args, **kwargs)
  File "E:\bzr\openlp\global-hotkeys\openlp\core\ui\maindisplay.py", line 543, in show_display
    if self.isHidden() and not Settings().value('core/logo hide on startup'):
  File "E:\bzr\openlp\global-hotkeys\openlp\core\common\settings.py", line 254, in __init__
    QtCore.QSettings.__init__(self, *args)
RuntimeError: maximum recursion depth exceeded while calling a Python object

Usually it crashes before any traceback is created,
but here's PyCharm's console output:

C:\Python34\python.exe E:/bzr/openlp/remove-escape-item/openlp.py
Fatal Python error: Cannot recover from stack overflow.

Thread 0x00001808 (most recent call first):
  File "C:\Python34\lib\socketserver.py", line 154 in _eintr_retry
  File "C:\Python34\lib\socketserver.py", line 236 in serve_forever
  File "E:\bzr\openlp\remove-escape-item\openlp\plugins\remotes\lib\httpserver.py", line 123 in start_server
  File "E:\bzr\openlp\remove-escape-item\openlp\plugins\remotes\lib\httpserver.py", line 88 in run

Current thread 0x00002640 (most recent call first):
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 543 in show_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\common\registry.py", line 137 in execute
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1086 in hide_plugin
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1033 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 251 in set_normal_cursor
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 194 in hook_exception
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\maindisplay.py", line 399 in preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1180 in update_preview
  File "E:\bzr\openlp\remove-escape-item\openlp\core\ui\slidecontroller.py", line 1034 in on_hide_display
  File "E:\bzr\openlp\remove-escape-item\openlp\core\__init__.py", line 237 in process_events
  ...

Revision history for this message
Raoul Snyman (raoul-snyman) wrote :

Bigger things to take care of right now.

Changed in openlp:
importance: Undecided → Low
Azaziah (suutari-olli)
description: updated
Revision history for this message
Tomas Groth (tomasgroth) wrote :

Fixed in current trunk

Changed in openlp:
milestone: none → 2.9.1
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.