Open RagingFlames opened 4 years ago
So I just spent some time testing this out more. For some reason I can only get the bug to consistently happen on one server.
Is that server publicly available? If so could you please share the URL for connecting to that server so we can try and reproduce the problem? :)
I just tested it on KDE Neon 5.18 (runngin Linux 5.3 Kernel and with KDE Plasma 5.18.2) and was not able to reproduce the error (on an arbitrary server)
From the screenshots I take it that Mumble does not re-open again if you click on the tray-icon. Is this the case?
The server that I can make it consistently happen on is a private server, so if possible I would like to avoid sharing it. That being said I spoke to the admin and he doesn't mind sharing it with someone privately if it means squashing a bug. The admin did want me to mention that they are just using the the mumble server software off of the testing branch of Debian on the default repository, nothing special.
I've been trying to zero in on more details to help people reproduce the bug. I noticed that the bug will only (Or at least more consistently? I don't remember what I did in the past) happen if mumble is maximized prior to minimizing it. You asked if mumble does not re-open again. After the bug happens my screen usually completely freezes after a few seconds, mumble does not re-open after I click the tray icon, though I did notice that if I wait a few minutes it may open and close itself. To clarify, my display get frozen by the bug, but I do get new frames pushed to the monitor every now and then, and on these frames mumble may or may not be open, I have no idea what causes that.
I'm debating doing a full screen recording of the process on OBS (At the very least to prove I'm not making it up!) but I might have to settle for recording it on my phone since the bug uses basically all my CPU time.
The server that I can make it consistently happen on is a private server, so if possible I would like to avoid sharing it.
Sure. Have you tried to re-use the configuration that is in use for that server to see if that's enough to also make this bug happen?
That being said I spoke to the admin and he doesn't mind sharing it with someone privately if it means squashing a bug.
I might come back to this. Let's try and see if we can figure it out without it first though :)
The admin did want me to mention that they are just using the the mumble server software off of the testing branch of Debian on the default repository, nothing special.
Would that be Murmur 1.3 already or is this still 1.2?
I'm debating doing a full screen recording of the process on OBS (At the very least to prove I'm not making it up!) but I might have to settle for recording it on my phone since the bug uses basically all my CPU time.
A short video might indeed be useful. I don't think you're making this up but that way we might be able to see some details we missed when texting. I think a recording with your phone is enough for this purpose :+1:
Oh and one more thing: Did other users on that server experience the same problem or is it only you? Could you get another user of that server to replicate the steps that caused the bug for you? If so, what was the outcome of that?
Sure. Have you tried to re-use the configuration that is in use for that server to see if that's enough to also make this bug happen?
I have not, I assume you mean just asking for a copy of the config files, setting up my own server and testing to see if I get the same results? If yes I can try that as soon as I get a chance to speak with the admin again.
Would that be Murmur 1.3 already or is this still 1.2?
Admin said they are running 1.3 when I asked earlier.
A short video might indeed be useful. I don't think you're making this up but that way we might be able to see some details we missed when texting. I think a recording with your phone is enough for this purpose +1
Working on this as we speak!
Oh and one more thing: Did other users on that server experience the same problem or is it only you? Could you get another user of that server to replicate the steps that caused the bug for you? If so, what was the outcome of that?
The only other person who is even running linux on the server would be me and the admin. I asked him to try and replicate the bug immediately but it did not happen for him. I will ask him to try again but specify that mumble must be maximized before he minimizes it.
So despite the video name I am well aware that this could in fact be a KDE bug, but I'm not an expert by any means so I have no idea. https://www.youtube.com/watch?v=8vk4wTIqYtg That's the video of the bug. To clarify, I am not switching the active window, that is just happening on its own. The buttons flashing is also not me. I did have to click several dozen times for the button to actually work though. I know the video doesn't show a tonne so if you want to see me try specific things just ask!
Another update, I starting trying to get the bug to happen on other servers and I can get it to happen on most after a few tries as long as mumble is maximized before hand. I didn't know I had to maximize it before so when I tried earlier on different servers it didn't work, sorry about that!
I assume you mean just asking for a copy of the config files, setting up my own server and testing to see if I get the same results?
Exactly
I didn't know I had to maximize it before so when I tried earlier on different servers it didn't work, sorry about that!
No problem. Then I'll try again with this method as well :point_up:
Alright now I can reproduce the error on my machine as well. That's very good 'cause it means that I will be able to investigate the issue further :+1:
I get this error showing up in the terminal when the error occurs:
<W>2020-02-28 19:14:18.212 internal error: void QXcbWindow::setNetWmStateOnUnmappedWindow() called on mapped window
That's great! I'm glad you were able to reproduce it. If there is anything else you need from me just message, I'll be paying attention to the thread. Looking forward to updates.
I played around with it some more and found out that you don't even have to be connected to a server for this to happen.
And what actually happens is an endless loop in which the functions MainWindow::showEvent
and MainWindow::hideEvent
are continuously called one after the other. Thus the flickering of the screen is actually the application being shown and hidden in an endless loop.
For a reason I don't understand it makes a difference when the window is maximized vs when it's not. However even though the system seems to work in the latter case, I still see a short flicker and my tests revealed that during showing the window it actually gets hidden again and shown again causing the flickering. However in the non-maximized case the loop ends there.
I think this whole thing is related to our implementation of the "minimize-to-tray"-feature...
@RagingFlames what Qt version do you have running on your machine? I have 5.14.1 - do you happen to run the same version? My guess is that we have built this feature around some Qt inconsistencies/bugs that have now been changed/fixed causing the old approach to this to fail miserably.
Yet another finding: It appears that the following code in MainWindow::showRaiseWindow
is responsible for starting the event-mess that can eventually lead to the described endless loop.
https://github.com/mumble-voip/mumble/blob/ec51a41cfe7a348d08c40468bc49aca0dbd3e9d8/src/mumble/MainWindow.cpp#L3108-L3110
I assume this is because setWindowState
fires hide/show-events on its own confusing the overall system to a point beyond recovery.
When I remove that code-fragment, the bug disappears and also the other strange event-triggers seem to disappear. As I don't even notice this part missing, I wonder what it is even there for. @davidebeatrici do you know more on this?
It looks like I'm using Qt version 5.9.7. I just checked it using "qmake --version".
Just a heads up, the server admin I spoke to who could not replicate this bug has version 5.12.5-5
Did he try after having Mumble maximized?
Yes. I went back to him after my discovery and had him try full screen and maximized. He said nothing happened.
What OS has he been trying it on?
Ah crap, sorry. I'm wrong. I'm using 5.12.5, same as the admin (accidentally looked in the wrong place). Me and him are using the same OS, Debian bullseye. Although I don't think that makes things better...
Although I don't think that makes things better...
Indeed it does not xD However I think the most important part is that I can reproduce the bug on my machine :)
@RagingFlames is the admin also using KDE?
Linking some relevant stuff for me:
QTrayIcon
The admin is also using KDE.
Hm okay. We probably need some testing on different OSs and with different Desktop environments / window managers on Linux to see if this might be a general issue with Qt, a bug in KDE or in fact a problem of our implementation... :thinking:
The window being maximized seems to be the key trigger here. I couldn't reproduce this before I tried it with the window being maximized.
@muesli what OS are you using?
Up-to-date ArchLinux with Plasma 5.18.5.
I'm not sure if I'm doing it correctly, but Mumble 1.3.0 has some funny behaviour on Raspbian (Debian) Buster with LXDE too.
Maximize window, click on tray mic -> window is hidden click on tray mic again -> 1) window shows un-maximized again (size before I maximized it) or 2) there is some flickering, but I see nothing. Clicking two times more on tray mic shows the un-maxmized window again.
I think the hide-to-tray stuff is fundamentally broken and has all kinds of weird stuff happening. I think someone (maybe I) has to rewrite that part to make it work properly...
Is this just waiting on reproduction with https://github.com/mumble-voip/mumble/issues/1233 or something else?
This is waiting for a complete rewrite of the minimize to tray handling as the current one is a bloody mess and causes all sorts of bugs ^^
Clicking the mumble tray icon ((The dude that is green when you aren't talking and blue when you are) causes mumble to completely saturate my CPU time. It also seems to be doing something weird with my mouse causing it to flicker and change what my active window is, but that may or may not be related. This only effects me when I am running Linux, although I'm not sure if it has to be Debian testing or not (That's what I'm running)
Steps to Reproduce Steps to reproduce the behavior:
Expected behavior I expect the mumble window to reopen like it normally does and not max out my CPU
Screenshots https://postimg.cc/gallery/czik4756/
Desktop (please complete the following information): -Laptop Debian Bullseye -Kernel Version 5.4.0-4 -KDE version 5.17.5 -Mumble version (1.3.0+dfsg-1+b1)
Additional context Hovering over the the tray icon causes it sometimes not happen so make sure to just click it. You'll notice in the screenshot that Plasma is also having a hard time after this bug happens which might explain the plasma related problems I have after doing this. I can go more into detail on stuff if you need me to, but I'm not sure what else you need. Despite what htop and KSysGuard say the CPU "feels" maxed out and the computer is basically unusable. Even killing the process is a bit challenging. I think the reason for what they are reporting might have something to do with hyperthreading?