Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show Editor freezing QLC+ for several seconds when first track is infinite #1572

Closed
qfulmina opened this issue May 22, 2024 · 1 comment
Closed
Assignees

Comments

@qfulmina
Copy link
Contributor

qfulmina commented May 22, 2024

Hi there.

Describe the bug
I can confirm a bug report from the forums: https://forum.qlcplus.org/viewtopic.php?p=64701

Every switch to and from the Shows tab completely freezes QLC+ 4.13.0 for several seconds when hold of the first track is set to infinite and a second track exists within this show.

To Reproduce
Steps to reproduce the behavior:
In a new QLC+ session. No fixture needed.

  1. Create two (empty) Scenes.
  2. Create a Show in the Shows tab.
  3. Add the first Scene to the Show at the very beginning. Set Hold to infinite.
  4. Add the second Scene to the Show.
  5. Switch to e.g. Functions tab.

Now the damage is done. One CPU core maximizes to 100% and QLC+ hangs for several seconds. And each time one switches to or from the Shows tab happens the same.

This does however not happen when the hold duration of the first scene is not infinite but incredibly high.

Expected behavior
No freezing.

Desktop (please complete the following information):

  • OS: Linux Mint
  • QLC+ Version 4.13.0 GIT
  • Two different laptops with Intel CPU.

Additional context
Debug Level 0 output:

Universe thread started 0
Universe thread started 1
Universe thread started 2
Universe thread started 3
SimpleDeskEngine::SimpleDeskEngine(Doc*)
void SimpleDesk::slotUniversePageChanged(int)
CueStack* SimpleDeskEngine::createCueStack()
[InputOutputPatchEditor] Fill tree for universe:  0
virtual void ShowManager::showEvent(QShowEvent*)
virtual void ShowManager::hideEvent(QHideEvent*)
virtual void FunctionManager::showEvent(QShowEvent*)
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
SceneEditor::SceneEditor(QWidget*, Scene*, Doc*, bool)
SceneEditor::SceneEditor(QWidget*, Scene*, Doc*, bool)
virtual SceneEditor::~SceneEditor()
virtual void FunctionManager::hideEvent(QHideEvent*)
void SceneEditor::slotFunctionManagerActive(bool)
virtual void ShowManager::showEvent(QShowEvent*)
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[ShowManager] updateMultiTrackView...
QXcbConnection: XCB error: 3 (BadWindow), sequence: 1010, resource id: 19459778, major code: 40 (TranslateCoords), minor code: 0
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
Start time: 4294967295 Duration: 0
virtual void ShowItem::mouseReleaseEvent(QGraphicsSceneMouseEvent*) mouse RELEASE event - < 120 > - < 49 >
void MultiTrackView::slotItemMoved(QGraphicsSceneMouseEvent*, ShowItem*) event - < 120 > - < 49 >
SceneEditor::SceneEditor(QWidget*, Scene*, Doc*, bool)
Idx:  0 , steps:  1
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
[FunctionsTreeWidget] TREE item changed
Start time: 4294967295 Duration: 0
virtual void ShowManager::hideEvent(QHideEvent*)
void SceneEditor::slotFunctionManagerActive(bool)
Function stop(). Name: "New Sequence 3" ID:  3 source: 4294967295 0
virtual SceneEditor::~SceneEditor()
@qfulmina
Copy link
Contributor Author

Thanks!

ldebs pushed a commit to ldebs/qlcplus that referenced this issue Jun 2, 2024
* master:
  Enter 4.13.1 release
  vc/xypad: fix vertical range slider on macOs (fix mcallegari#1569)
  ui: update range slider against upstream code
  showmanager: don't freeze on infinite duration chasers/sequences (fix mcallegari#1572)
  resources: 4 new fixtures (see changelog)
  resources: improve a few gobos
  plugins/hid: Generic name plus (VID:PID) for HIDJsDevices
  The stopOnExit command only affects subsequent function calls
  plugins/hid: Rework naming of HIDJsDevices
  Formatting corrected as per code review and style guide
  plugins/hidplugin: Add device's serial number to name string of HIDJsDevice
  plugins/hidplugin: Add device's serial number to name string of HIDDMXDevice
  docs: Add documentation for merger mode of DE/FX5/Nodle DMX devices
  plugins/hiddmxdevice: Add translation stubs for new merger mode option
  plugins/hiddmxdevice: Add possibility to activate merger mode
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants