Major QDBus regression in Qt6 with potential impact on KDE
Hi! I'm working on a piece of software that extensively uses QDBus. The project is based on Qt5. I'm trying to upgrade it to Qt6 but have encountered an issue with QDBus that's described in detail in my official bug report[1]. The report includes a link to a github repo with reproducible examples. Short version is: it's impossible to connect to the InterfacesAdded or InterfacesRemoved signals (and potentially to any signals that have slightly more complex arguments) on the system bus with QDBus in Qt6 (unless one enables QDBUS_DEBUG=1 in which case it's possible). I suspect some timing issue/race condition but don't know Qt enough to debug it. While my project is not related to KDE, I thought I'd bring it to your attention (as KDE is scheduled to upgrade to Qt6). This bug definitely affects KDE as for instance the networkmanager-qt project subscribes for the InterfacesAdded signal of NetworkManager's paths and will no longer work with Qt6. Has anyone in the KDE community encountered this bug yet? How does KDE deal with blockers like this? Seems like Qt is not eager to fix it on their side. Best regards, Bartosz Golaszewski [1] https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-108822
Re: Major QDBus regression in Qt6 with potential impact on KDE
Hi, thanks for bringing that up. Indeed, at least Solid, KDE’s Hardware Abstraction Framework, makes use of InterfacesAdded/InterfacesRemoved extensively when talking to UDisks for monitoring storage devices. That said, I haven’t tried Solid on Qt 6 yet, so I don’t know if it is a real-world issue for this scenario. Cheers Kai Uwe
Re: Major QDBus regression in Qt6 with potential impact on KDE
On Thursday, 15 December 2022 18:34:54 -03 Kai Uwe Broulik wrote: > thanks for bringing that up. Indeed, at least Solid, KDE’s Hardware > Abstraction Framework, makes use of InterfacesAdded/InterfacesRemoved > extensively when talking to UDisks for monitoring storage devices. > > That said, I haven’t tried Solid on Qt 6 yet, so I don’t know if it is a > real-world issue for this scenario. The issue appears to be a race condition, because strace shows everything working as it should and the use of QDBUS_DEBUG=1 will affect timing. That also means the issue is likely a Heisenbug and difficult to debug. It might also be a latent issue in Qt 5 that got exposed by faster functionality somewhere in QtCore, because there have been no changes to QtDBus to account for this (it has barely received any changes since 5.6). Someone needs to debug it and I don't have the time. -- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel DCAI Cloud Engineering
Re: Major QDBus regression in Qt6 with potential impact on KDE
El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz Golaszewski va escriure: > Hi! > > I'm working on a piece of software that extensively uses QDBus. The > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > encountered an issue with QDBus that's described in detail in my > official bug report[1]. The report includes a link to a github repo > with reproducible examples. > > Short version is: it's impossible to connect to the InterfacesAdded or > InterfacesRemoved signals (and potentially to any signals that have > slightly more complex arguments) on the system bus with QDBus in Qt6 > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > suspect some timing issue/race condition but don't know Qt enough to > debug it. > > While my project is not related to KDE, I thought I'd bring it to your > attention (as KDE is scheduled to upgrade to Qt6). This bug definitely > affects KDE as for instance the networkmanager-qt project subscribes > for the InterfacesAdded signal of NetworkManager's paths and will no > longer work with Qt6. > > Has anyone in the KDE community encountered this bug yet? How does KDE > deal with blockers like this? Seems like Qt is not eager to fix it on > their side. Remember Qt is Free Software, if you are blocked by it, you seem like a good person to try to fix it :) Cheers, Albert > > Best regards, > Bartosz Golaszewski > > [1] https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-108822
Re: Major QDBus regression in Qt6 with potential impact on KDE
On Fri, Dec 16, 2022 at 3:27 PM Albert Astals Cid wrote: > > El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz Golaszewski > va escriure: > > Hi! > > > > I'm working on a piece of software that extensively uses QDBus. The > > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > > encountered an issue with QDBus that's described in detail in my > > official bug report[1]. The report includes a link to a github repo > > with reproducible examples. > > > > Short version is: it's impossible to connect to the InterfacesAdded or > > InterfacesRemoved signals (and potentially to any signals that have > > slightly more complex arguments) on the system bus with QDBus in Qt6 > > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > > suspect some timing issue/race condition but don't know Qt enough to > > debug it. > > > > While my project is not related to KDE, I thought I'd bring it to your > > attention (as KDE is scheduled to upgrade to Qt6). This bug definitely > > affects KDE as for instance the networkmanager-qt project subscribes > > for the InterfacesAdded signal of NetworkManager's paths and will no > > longer work with Qt6. > > > > Has anyone in the KDE community encountered this bug yet? How does KDE > > deal with blockers like this? Seems like Qt is not eager to fix it on > > their side. > > Remember Qt is Free Software, if you are blocked by it, you seem like a good > person to try to fix it :) > Oh I tried and failed. :( So instead I thought I'd find a) paying clients, b) projects with some serious stake in QDBus that could help and report it to them in hope of finding help. :) Bart
Re: Major QDBus regression in Qt6 with potential impact on KDE
El divendres, 16 de desembre de 2022, a les 15:45:17 (CET), Bartosz Golaszewski va escriure: > On Fri, Dec 16, 2022 at 3:27 PM Albert Astals Cid wrote: > > El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz > > Golaszewski> > > va escriure: > > > Hi! > > > > > > I'm working on a piece of software that extensively uses QDBus. The > > > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > > > encountered an issue with QDBus that's described in detail in my > > > official bug report[1]. The report includes a link to a github repo > > > with reproducible examples. > > > > > > Short version is: it's impossible to connect to the InterfacesAdded or > > > InterfacesRemoved signals (and potentially to any signals that have > > > slightly more complex arguments) on the system bus with QDBus in Qt6 > > > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > > > suspect some timing issue/race condition but don't know Qt enough to > > > debug it. > > > > > > While my project is not related to KDE, I thought I'd bring it to your > > > attention (as KDE is scheduled to upgrade to Qt6). This bug definitely > > > affects KDE as for instance the networkmanager-qt project subscribes > > > for the InterfacesAdded signal of NetworkManager's paths and will no > > > longer work with Qt6. > > > > > > Has anyone in the KDE community encountered this bug yet? How does KDE > > > deal with blockers like this? Seems like Qt is not eager to fix it on > > > their side. > > > > Remember Qt is Free Software, if you are blocked by it, you seem like a > > good person to try to fix it :) > > Oh I tried and failed. :( > > So instead I thought I'd find a) paying clients, b) projects with some > serious stake in QDBus that could help and report it to them in hope > of finding help. :) Fair enough :) As a suggestion next time attach the code, don't put it in comments (and provide a full buildable example, yours doesn't have a buildsystem), makes me super sad that i have to copy and paste and i was almost super close to not even bothering trying it. And then i realized my distro doesn't seem to provide pydbus_manager so yep too hard to even try to reproduce for something that personally is not at all pressing for me yet. Cheers, Albert > > Bart
Re: Major QDBus regression in Qt6 with potential impact on KDE
On Fri, Dec 16, 2022 at 4:05 PM Albert Astals Cid wrote: > > El divendres, 16 de desembre de 2022, a les 15:45:17 (CET), Bartosz > Golaszewski va escriure: > > On Fri, Dec 16, 2022 at 3:27 PM Albert Astals Cid wrote: > > > El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz > > > Golaszewski> > > > va escriure: > > > > Hi! > > > > > > > > I'm working on a piece of software that extensively uses QDBus. The > > > > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > > > > encountered an issue with QDBus that's described in detail in my > > > > official bug report[1]. The report includes a link to a github repo > > > > with reproducible examples. > > > > > > > > Short version is: it's impossible to connect to the InterfacesAdded or > > > > InterfacesRemoved signals (and potentially to any signals that have > > > > slightly more complex arguments) on the system bus with QDBus in Qt6 > > > > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > > > > suspect some timing issue/race condition but don't know Qt enough to > > > > debug it. > > > > > > > > While my project is not related to KDE, I thought I'd bring it to your > > > > attention (as KDE is scheduled to upgrade to Qt6). This bug definitely > > > > affects KDE as for instance the networkmanager-qt project subscribes > > > > for the InterfacesAdded signal of NetworkManager's paths and will no > > > > longer work with Qt6. > > > > > > > > Has anyone in the KDE community encountered this bug yet? How does KDE > > > > deal with blockers like this? Seems like Qt is not eager to fix it on > > > > their side. > > > > > > Remember Qt is Free Software, if you are blocked by it, you seem like a > > > good person to try to fix it :) > > > > Oh I tried and failed. :( > > > > So instead I thought I'd find a) paying clients, b) projects with some > > serious stake in QDBus that could help and report it to them in hope > > of finding help. :) > > Fair enough :) > > As a suggestion next time attach the code, don't put it in comments (and > provide a full buildable example, yours doesn't have a buildsystem), makes me > super sad that i have to copy and paste and i was almost super close to not > even bothering trying it. > What are you talking about, there's a link to my github repo at the bottom and it includes requirements.txt for python and a .pro file for Qt. > And then i realized my distro doesn't seem to provide pydbus_manager so yep > too hard to even try to reproduce for something that personally is not at all > pressing for me yet. > Yeah the requirements.txt in the repo points to the relevant github repo. Bart
Re: Major QDBus regression in Qt6 with potential impact on KDE
El divendres, 16 de desembre de 2022, a les 16:20:29 (CET), Bartosz Golaszewski va escriure: > On Fri, Dec 16, 2022 at 4:05 PM Albert Astals Cid wrote: > > El divendres, 16 de desembre de 2022, a les 15:45:17 (CET), Bartosz > > > > Golaszewski va escriure: > > > On Fri, Dec 16, 2022 at 3:27 PM Albert Astals Cid wrote: > > > > El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz > > > > Golaszewski> > > > > > > > > va escriure: > > > > > Hi! > > > > > > > > > > I'm working on a piece of software that extensively uses QDBus. The > > > > > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > > > > > encountered an issue with QDBus that's described in detail in my > > > > > official bug report[1]. The report includes a link to a github repo > > > > > with reproducible examples. > > > > > > > > > > Short version is: it's impossible to connect to the InterfacesAdded > > > > > or > > > > > InterfacesRemoved signals (and potentially to any signals that have > > > > > slightly more complex arguments) on the system bus with QDBus in Qt6 > > > > > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > > > > > suspect some timing issue/race condition but don't know Qt enough to > > > > > debug it. > > > > > > > > > > While my project is not related to KDE, I thought I'd bring it to > > > > > your > > > > > attention (as KDE is scheduled to upgrade to Qt6). This bug > > > > > definitely > > > > > affects KDE as for instance the networkmanager-qt project subscribes > > > > > for the InterfacesAdded signal of NetworkManager's paths and will no > > > > > longer work with Qt6. > > > > > > > > > > Has anyone in the KDE community encountered this bug yet? How does > > > > > KDE > > > > > deal with blockers like this? Seems like Qt is not eager to fix it > > > > > on > > > > > their side. > > > > > > > > Remember Qt is Free Software, if you are blocked by it, you seem like > > > > a > > > > good person to try to fix it :) > > > > > > Oh I tried and failed. :( > > > > > > So instead I thought I'd find a) paying clients, b) projects with some > > > serious stake in QDBus that could help and report it to them in hope > > > of finding help. :) > > > > Fair enough :) > > > > As a suggestion next time attach the code, don't put it in comments (and > > provide a full buildable example, yours doesn't have a buildsystem), makes > > me super sad that i have to copy and paste and i was almost super close > > to not even bothering trying it. > > What are you talking about, there's a link to my github repo at the > bottom and it includes requirements.txt for python and a .pro file for > Qt. For those that are not put off by his somewhat agressive manners and still want to invest their spare time to help him, the link to github repo is hidden in the "here" word of the "The examples I posted are available here." in a 250 lines comment. Cheers, Albert
Re: Major QDBus regression in Qt6 with potential impact on KDE
On Fri, Dec 16, 2022 at 10:39 PM Albert Astals Cid wrote: > > El divendres, 16 de desembre de 2022, a les 16:20:29 (CET), Bartosz > Golaszewski va escriure: > > On Fri, Dec 16, 2022 at 4:05 PM Albert Astals Cid wrote: > > > El divendres, 16 de desembre de 2022, a les 15:45:17 (CET), Bartosz > > > > > > Golaszewski va escriure: > > > > On Fri, Dec 16, 2022 at 3:27 PM Albert Astals Cid wrote: > > > > > El dijous, 15 de desembre de 2022, a les 19:55:59 (CET), Bartosz > > > > > Golaszewski> > > > > > > > > > > va escriure: > > > > > > Hi! > > > > > > > > > > > > I'm working on a piece of software that extensively uses QDBus. The > > > > > > project is based on Qt5. I'm trying to upgrade it to Qt6 but have > > > > > > encountered an issue with QDBus that's described in detail in my > > > > > > official bug report[1]. The report includes a link to a github repo > > > > > > with reproducible examples. > > > > > > > > > > > > Short version is: it's impossible to connect to the InterfacesAdded > > > > > > or > > > > > > InterfacesRemoved signals (and potentially to any signals that have > > > > > > slightly more complex arguments) on the system bus with QDBus in Qt6 > > > > > > (unless one enables QDBUS_DEBUG=1 in which case it's possible). I > > > > > > suspect some timing issue/race condition but don't know Qt enough to > > > > > > debug it. > > > > > > > > > > > > While my project is not related to KDE, I thought I'd bring it to > > > > > > your > > > > > > attention (as KDE is scheduled to upgrade to Qt6). This bug > > > > > > definitely > > > > > > affects KDE as for instance the networkmanager-qt project subscribes > > > > > > for the InterfacesAdded signal of NetworkManager's paths and will no > > > > > > longer work with Qt6. > > > > > > > > > > > > Has anyone in the KDE community encountered this bug yet? How does > > > > > > KDE > > > > > > deal with blockers like this? Seems like Qt is not eager to fix it > > > > > > on > > > > > > their side. > > > > > > > > > > Remember Qt is Free Software, if you are blocked by it, you seem like > > > > > a > > > > > good person to try to fix it :) > > > > > > > > Oh I tried and failed. :( > > > > > > > > So instead I thought I'd find a) paying clients, b) projects with some > > > > serious stake in QDBus that could help and report it to them in hope > > > > of finding help. :) > > > > > > Fair enough :) > > > > > > As a suggestion next time attach the code, don't put it in comments (and > > > provide a full buildable example, yours doesn't have a buildsystem), makes > > > me super sad that i have to copy and paste and i was almost super close > > > to not even bothering trying it. > > > > What are you talking about, there's a link to my github repo at the > > bottom and it includes requirements.txt for python and a .pro file for > > Qt. > > For those that are not put off by his somewhat agressive manners and still > want > to invest their spare time to help him, the link to github repo is hidden in > the "here" word of the "The examples I posted are available here." in a 250 > lines comment. > Albert, Sorry, it was not my intention to come off as "aggressive". Sometimes written communication doesn't correctly convey emotions, especially if English is a second language. Bart