raelgc / scudcloud

ScudCloud - Slack for Linux
https://launchpad.net/~rael-gc/+archive/ubuntu/scudcloud
MIT License
1.22k stars 99 forks source link

QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. #546

Open shevek opened 7 years ago

shevek commented 7 years ago

ScudCloud Version

Paste the output for scudcloud --version below: ScudCloud 1.50 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17

Distro and Desktop info

Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial xfce

Expected behavior

Actual behavior

QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once. QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.

Steps to reproduce

  1. perhaps changing networks
  2. perhaps suspend on one network, resume where it's absent and connect to a different one
raelgc commented 7 years ago

For sure, Qt5 is bad on reconnect (I actually have to re-open Scudcloud when I'm disconnected from Internet for few hours). I'll search if I can improve this in some way.

raelgc commented 7 years ago

Hm, I've updated my qtwebkit, and the reconnect improved a lot. Maybe I should publish a package with it.

shevek commented 7 years ago

Perhaps so. Recent scudcloud ALWAYS needs a restart after network change.

raelgc commented 7 years ago

@shevek Yeap, I'm investigating this. Even with new qtwebkit I'm facing this too. I'll keep searching for a solution.

raelgc commented 7 years ago

It appears this was fixed in Qt 5.5.14: https://codereview.qt-project.org/#/c/113478/

I'll check if I can create a class inheriting from QtNetwork manager and apply a fix like that in python.

jayme-github commented 7 years ago

Looks like the patches from https://bugreports.qt.io/browse/QTBUG-46323 are already included in current debian versions (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804883) but the problem still persists, even with Qt 5.7.1.

raelgc commented 7 years ago

Thank you for adding this info, @jayme-github.

In a first moment I though to try to mimic some of the patch using Python, but after check the code, not an easy task (similar to how I've translated the spell suggester from Qupzilla).

But if this is not fixed yet... :(

jayme-github commented 7 years ago

Hm, yea - maybe the "new" problem is a different one. As said in #573 I can only see some errors in the webkit debug console, no QNetworkReplyImplPrivate errors here.

raelgc commented 7 years ago

Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).

kristijan-ujevic commented 7 years ago

Exactly the same problem here, running Ubuntu 16.04.2 LTS on Gnome3.

jayme-github commented 7 years ago

Usually the QNetworkReplyImplPrivate error is displayed in the command line (so, you have to start scudcloud from there).

Did that of cause. I only see messages like the following, but I'm unsure if they are related to this issue: QObject::disconnect: Unexpected null parameter

raelgc commented 7 years ago

Even using the internal browser reload, the Qt libraries appears to not reconnect properly. I was thinking to build a try/catch around these failures and fire a reload.

jayme-github commented 7 years ago

Yea, it's completely strange and probably there is more than one specific issue. I did some further testing with the changes in https://github.com/jayme-github/scudcloud/commit/af3cd5491c1ed5d97c51a5eedbb0da94b1e97e86:

@raelgc do you know where those QObject::disconnect: Unexpected null parameter messages are triggered?

raelgc commented 7 years ago

@jayme-github I'm starting scudcloud by command line and I'll watch it for the next hours.

jayme-github commented 7 years ago

This could be related: https://bugreports.qt.io/browse/QTBUG-57110

Laptop just woke up from suspend (on the same network as when going to sleep):

"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/28"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/27"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/28"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/27"
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
QObject::disconnect: Unexpected null parameter
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/30"
QObject::disconnect: Unexpected null parameter
2017-06-06 06:07:06.345186 _networkAccessibleChanged:  0
2017-06-06 06:07:06.345616 _networkAccessibleChanged:  0
2017-06-06 06:07:06.345664 _networkAccessibleChanged:  0

Switching networks does not bring back accessible state.

raelgc commented 7 years ago

Very similar results after suspend/wakeup:

sys:1: Warning: Source ID 599 was not found when attempting to remove it
sys:1: Warning: Source ID 1656 was not found when attempting to remove it
QObject::disconnect: Unexpected null parameter
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
"No such interface 'org.freedesktop.DBus.Properties' on object at path /org/freedesktop/NetworkManager/ActiveConnection/0"
QObject::disconnect: Unexpected null parameter