Opened 5 months ago

Closed 5 months ago

Last modified 5 months ago

#444 closed bug (fixed)

SnapIT: Causes a system freeze

Reported by: Hubert Maier Owned by:
Priority: normal Milestone: 5.0-2020R2
Component: muimaster.library Version: 5.0-2020R1
Severity: minor Keywords:
Cc: OS Platform: AmigaOS4
Blocked By: Blocking:
Release Notes:

Description

Summary

A screengrabber, based on MUI and called SnapIT (https://www.onyxsoft.se/snapit.html), is causing a complete system freeze when bringing up the context menu (right mouse click) while bubble help is active over an interactive window list.

Steps to reproduce

  1. Start it without changing anything
  2. Move the mouse cursor to the "Window List" field
  3. Wait until the help bubble comes up

There is yet another window created in the list called "SnapIT" (for the help bubble)

  1. Without moving the mouse, right click to bring up SnapIT's workbench menu

Expected results

No freeze.
There should just the context menu coming up, nothing else.

Actual results

A complete system freeze with no crash, no crash log and absolutely nothing on serial.
It looks like as if the system is instantly screeching to a full stop.

Regression

Don't think so, i never tested or used the program before, so i can't really tell.

Notes

Nothing useful probably, but here goes:

  1. I tried every single MUI demo, but couldn't find a similar list that will bring up bubble help, so i can't really test if this is intended behaviour, i guess not though, since i can make the right-click menu come up perfectly fine, if i right-click into the list fast enough *before* bubble help comes up and creates the new entry.
  2. I *think*, but that is a shot in the dark, that there is a race condition where MUI tries to remove bubble help (and the extra entry) while the brought up Workbench menu has already locked the SnapIT window (at least it locks the MUI preferences window in it's "Busy" setting, by stopping the amimation, if i right-click on the window border between "Save" and "Use" - so i'm assuming it does the same here?).

Program specific:

  1. There also seems to be another bug in either MUI or the SnapIT app. While bubble help comes up, focus on the formerly marked entry in the list is lost and moved wrongly down up one entry, since the whole list is moved down when bubble help's entry is added.

Let me know if you need another bug item for this.

  1. The whole window list seems to be an "object", not sure if this adds to the problem? If i move the cursor around inside the list, bubble help stays where it was first opened. If i click on another entry, no new bubble help will come up, instead it will be removed, together with the extra entry. If i now do a right-click, everythings works fine. I have to move outside the window list and come back to make bubble help reappear.
  2. There is no "bubble help" entry in "Components", so i left it undefined.

If you need more information or testing, just shout.

Thank you for the ongoing development

Attachments (1)

muimaster_20200702.zip (1.1 MB) - added by Thore Böckelmann 5 months ago.
muimaster.library with layer based bubble help

Download all attachments as: .zip

Change History (12)

comment:1 Changed 5 months ago by Thore Böckelmann

Component: undefinedmuimaster.library
Milestone: future release5.0-2020R2
Priority: undecidednormal
Status: newpending

I can confirm this freeze. But it is not related to MUI's bubble help. I did a small modification to hide all visible bubble before any menu is opened and the freeze still occurs from time to time. I assume it happens due to how SnapIT collects the informations about opened screens/windows. As such there is not much I can do about that. This must be fixed in SnapIT. Or at least the developer should explain how SnapIT works internally.

comment:2 Changed 5 months ago by Hubert Maier

Status: pendingnew

@Thore

No problem, thanks a lot for the feedback.
I already informed the author…he may or may not join this thread (Not sure if he has an account here).

Can we keep this open until further notice from the author or me, please?

And, totally unrelated, but nice to know…why is the freeze shutting down everything so hard?
What is crashing that takes the system down, so that not even GrimReaper can act?

comment:3 Changed 5 months ago by Thore Böckelmann

I don't know what kind of locking is done by SnapIT. Could be anything. MUI does not do any locking when hiding bubbles or updating a list.

comment:4 Changed 5 months ago by Thore Böckelmann

In 6591:

  • Window.c: any yet visible bubble help will be hidden before any menu is opened. This refs #444.

comment:5 Changed 5 months ago by Thore Böckelmann

In 6593:

  • masterbubble.c: activated an experimental feature to use layers instead of windows for the bubble help. This refs #444, because it effectively works around the cause of the freeze described there.

Changed 5 months ago by Thore Böckelmann

Attachment: muimaster_20200702.zip added

muimaster.library with layer based bubble help

comment:6 Changed 5 months ago by Thore Böckelmann

Please try the attached version. For me the freeze is worked around by not opening a window for the bubble help. Hence SnapIT does not need to rescan the list of opened windows and the freeze should be avoided.

However, I really like to know why this freeze can happen at all.

comment:7 Changed 5 months ago by Hubert Maier

@Thore

Confirmed fixed, thank you.

I did not get an answer from Stefan yet, will report back once i did.

comment:8 Changed 5 months ago by Thore Böckelmann

Any answer yet? Otherwise I would close this ticket as "fixed".

comment:9 Changed 5 months ago by Hubert Maier

@Thore

Go ahead.
I haven't heard from Stefan yet, but he can always post here, if he feels like it.

Thank you very much again for the quick fix

comment:10 Changed 5 months ago by Thore Böckelmann

Resolution: fixed
Status: newclosed

Remember that the fix is not a real fix, but just a workaround. The freeze is simply avoided by not using a window for the bubble anymore.

The way SnapIT gets its list of windows is still not 100% safe from my point of view.

comment:11 Changed 5 months ago by Hubert Maier

Noted.

Stefan got the link to this report and a detailed description of what is happening.

I assume he'll join at some point (if real life permits) and add his findings/questions/fixes here.

Note: See TracTickets for help on using tickets.