![]() Registered Member ![]()
|
What's wrong with my DBus? Why is Signal deprecated?
How can I check d-bus is working as it should?
Have to mention that akonadi is crashing when shutdown kde session. |
![]() Administrator ![]()
|
That message is harmless and can be safely ignored, and is not related to the Akonadi crash on shutdown.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
![]() Registered Member ![]()
|
I'd love to ignore this message, but can't. This message is output to stderr I think. And my mercurial plugin keeps thinking it's a mercurial related error. And I think it's kwallet that causes this message.
How can I get rid of this message? As in, when I type for example "hg outgoing", I don't want to see it. When searching for this message in google, I see tons of forum posts with various logs of people running various things, and they almost all contain this "Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)" message. Why does everyone's console have to be spammed with it? Does a user care that someone used a deprecated class somewhere? (no, not enough to see it 50 times a day) Who is outputting it and why and how can I make it stop doing that? Thanks. |
![]() Administrator ![]()
|
If Mercurial has KWallet integration, or otherwise uses Qt's DBus functionality, then this message will be output. The message cannot be silenced as it is output by Qt itself.
This message is output because the signal being connected to is severely inefficient and leads to the application waking up whenever a new application connects to the session bus ( leading to higher power consumption, etc )
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
![]() Registered Member ![]()
|
What can I do to stop this then? I hope that this behaviour is considered a bug. Is it? It can't be normal that a user has to see this message at every Mercurial command, right? I have a mercurial plugin in IntelliJ, and whenever the output of hg outputs something to stderr, it pops up a dialog with the message in it. So I get a stupid useless popup dialog with this DBUS related message all the time. Are there any tricks to stop it anyway? Like somehow flagging it non deprecated somewhere (if that's possible at all) or making it use something else than that bus? And will someone make it not use the depercated signal some day? If I can't do anything about it, then, again, why do I have to see that message? An error should be there to warn the user about something he can do something about, but an error that shows up any time while doing a daily task, that is the fault of someone else, is very very annoying! I'm forced to use KWallet to have encrypted passwords with Mercurial. I don't like KWallet because it's a large, bloated, service, but have to use it. Can at least the comfort level of someone being forced to use such a service just for not having a password stored in plain text format, be increased a SLIGHT little bit by at least not adding extra bloat behaviour like this message? Thanks! |
![]() Administrator ![]()
|
Are you able to compile a customised version of Qt? A check of the Qt sources reveals that this is the only way to solve this.
If you can compile Qt, then please checkout it's sources, and edit the file src/dbus/qdbusconnectioninterface.cpp. You need to find the following line:
And change it to:
After that, compile and install Qt to /usr to overwrite your distributions package, then log out and back in again. This issue should then be solved. Please file a bug at bugs.kde.org ( type - wishlist ) aganist KWallet so that it's maintainers can correct this in the long term. The solution given above is simply a hack to forcibly disable this message.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
![]() KDE Developer ![]()
|
It is very uncommon to see any such message at a console.
Usually this implies that the program from which this message comes has been started at that console. Which is usually done to get exactly at the application's output to standard out and standard error streams. The warning itself is in this case an improvement suggestion for the developer of the application or library currently using QDBusConnection's signal ownerChanged(). Since Qt 4.6 there is a special helper class QDBusServiceWatcher for such purposes, but of course the other variant is still valid (hence "deprecated" and not "unavailable" or "unknown"). Cheers, _
anda_skoa, proud to be a member of KDE forums since 2008-Oct.
|
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]