mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.41k stars 1.12k forks source link

Mumble spams username dialogs when using the 'autoconnect on startup' option #3191

Closed Snowman3456 closed 7 years ago

Snowman3456 commented 7 years ago

I see this in the terminal and mumble's autoconnect spams an absurd amount of username text boxes on top of one another at an unprecedented rate. Freezes the gnome interface usually if I can't kill it in time.

mkrautz commented 7 years ago

Please explain what you're trying to do, and how. Please also explain which version of Mumble you're using.

The title of this issue has nothing to do with autoconntect or username text boxes.

It seems like you're saying Mumble is endlessly popping up dialog boxes that ask for your username. Is that correct?

Snowman3456 commented 7 years ago

@mkrautz Yes that is correct. Upon launching mumble, that is what occurs. I've found a workaround which is basically just to hold Enter until it recognizes the selection and then the application is fine.

Otherwise, if I let it continue, it eventually freezes the desktop environment.

I'm using the latest snapshot provided by the Ubuntu PPA.

mkrautz commented 7 years ago

So... What feature are you using for auto-connecting?

Do you click on a URL? Do you run it from the terminal with a parameter? Do you use the "Reconnect to last server on startup" feature?

Snowman3456 commented 7 years ago

@mkrautz GUI-based 'Reconnect to last server on startup' which technically works but it is odd that it always asks me for my username.

It's supposed to remember that right?

Kissaki commented 7 years ago

After entering your username and clicking ok, does it successfully connect? Yes it should remember your username in that case. Maybe it can’t write its settings?

mkrautz commented 7 years ago

@Kissaki Did you try to reproduce? I think it might have been broken by the new ServerHandler/ServerResolver changes...

Kissaki commented 7 years ago

No, did not try.

Snowman3456 commented 7 years ago

@Kissaki The username is pre-filled correctly (so it's remembering) but it isn't remembering that it should automatically bypass this screen altogether as I've already selected my username in the past and set up auto-reconnect, etc. And technically I can't click ok in the normal sense. I have to hold Enter which presumably beats the race condition and eventually gets the window to accept that I am confirming a certain username.

I only noticed it was no longer working smoothly a month or so ago but for a long time prior, it was working smoothly.

To clarify, I'm pretty sure it always preselected my last username rather than making the assumption that I wanted to juts autoconnect with that username. So in that sense, autoconnect was never working but at that point I was able to click OK in a smooth manner.

mkrautz commented 7 years ago

OK, I've managed to reproduce this. It happens when a server doesn't have a username associated with it in the database...

But: we don't allow you to store a server without a username.

What kind of server are you connecting to? Is it one you've added yourself as a favourite?

The way I managed to reproduce this was to add a new favourite server, and then manually go in the DB and set its username to an empty string:

$ sqlite3 ~/.local/share/Mumble/Mumble/mumble.sqlite SQLite version 3.14.1 2016-08-11 18:53:32 Enter ".help" for usage hints. sqlite> update servers set username='' where id=9; sqlite>

This is a bug, but I'm wondering how come you have a server without a username associated with it in your DB when the UI doesn't allow that? Maybe we allowed it in previous versions of Mumble?

mkrautz commented 7 years ago

OK, so it is related to the new resolver infrastructure. This is enough to reproduce: https://github.com/mumble-voip/mumble/compare/master...mkrautz:3191-reproducer

mkrautz commented 7 years ago

Fix available at https://github.com/mumble-voip/mumble/pull/3198

Snowman3456 commented 7 years ago

It's my own Ubuntu host server. I'm the admin. I imported the user cert from a backup.