Activity log for bug #1574699

Date Who What changed Old value New value Message
2016-04-25 15:07:02 ogoffart bug added bug
2016-04-25 15:13:39 Dmitry Shachnev bug added subscriber Dmitry Shachnev
2016-04-25 15:37:31 Removed by request bug added subscriber Gilles
2016-04-26 04:58:33 mweyen bug added subscriber mweyen
2016-04-27 14:21:02 Johan Ehnberg bug added subscriber Johan Ehnberg
2016-04-28 16:23:42 Felix Eckhofer bug added subscriber Felix Eckhofer
2016-05-11 14:55:15 Launchpad Janitor branch linked lp:~mitya57/appmenu-qt5/lp1574699
2016-10-02 20:08:04 Adrianna Pińska bug added subscriber Adrianna Pińska
2017-01-13 12:17:43 Anatoli bug watch added https://github.com/keepassxreboot/keepassxc/issues/102
2017-01-25 13:44:37 Anatoli bug added subscriber Anatoli
2017-01-25 17:47:59 Dmitry Shachnev bug task added appmenu-qt5 (Ubuntu)
2017-01-25 17:48:19 Dmitry Shachnev nominated for series Ubuntu Xenial
2017-01-25 17:48:19 Dmitry Shachnev bug task added appmenu-qt5 (Ubuntu Xenial)
2017-01-25 17:48:33 Dmitry Shachnev appmenu-qt5 (Ubuntu): status New Fix Released
2017-01-25 17:48:52 Dmitry Shachnev appmenu-qt5 (Ubuntu Xenial): status New In Progress
2017-01-25 17:48:52 Dmitry Shachnev appmenu-qt5 (Ubuntu Xenial): assignee Dmitry Shachnev (mitya57)
2017-01-25 20:19:37 Dmitry Shachnev description in qppmenu-qt5 in ubuntu 16.4, the AppMenuPlatformSystemTrayIcon assumes there is only one instance of a QPlatformSystemTrayIcon: it register the same sbus name for all the instances. In fact, there is one instance of QPlatformSystemTrayIcon per instance of QSystemTrayIcon, and one temporary is created for QSystemTrayIcon::isSystemTrayAvailable. This breaks the owncloud client [issue https://github.com/owncloud/client/issues/4693 ] This example reproduces the problem: ``` #include <QtWidgets> int main(int argc, char *argv[]) { QApplication a(argc, argv); QImage img(64,64, QImage::Format_ARGB32); img.fill(Qt::red); QSystemTrayIcon sti(QIcon(QPixmap::fromImage(img))); sti.show(); QSystemTrayIcon::isSystemTrayAvailable(); // with this line, the QSystemTrayIcon does not appear // comment the previous line to see that the QSystemTrayIcon works and that there is a bug in that line return a.exec(); } ``` This testcase shows that the AppMenuPlatformSystemTrayIcon::~AppMenuPlatformSystemTrayIcon called by the temporary object created inside QSystemTrayIcon::isSystemTrayAvailable unregisters the icon. # Impact This affects all Qt applications that use QSystemTrayIcon::​isSystemTrayAvailable, in Unity environment. Confirmed examples are owncloud-client and keepassxc, but there may be more applications. # Test Case See the original description below for the test case in C++. # Proposed Fix The proposed fix is identical to what was uploaded to Yakkety as version 0.3.0+16.10.20160628.1-0ubuntu1. The fix is using unique connections for all AppMenuPlatformSystemTrayIcon instances. # Regression Potential The fix is in Yakkety since June and in Zesty, and nobody complained so far. So it should not cause any regressions. ----------------------------------------------------------------------------- in appmenu-qt5 in ubuntu 16.04, the AppMenuPlatformSystemTrayIcon assumes there is only one instance of a QPlatformSystemTrayIcon: it register the same dbus name for all the instances. In fact, there is one instance of QPlatformSystemTrayIcon per instance of QSystemTrayIcon, and one temporary is created for QSystemTrayIcon::isSystemTrayAvailable. This breaks the owncloud client [issue https://github.com/owncloud/client/issues/4693 ] This example reproduces the problem: ``` #include <QtWidgets> int main(int argc, char *argv[]) {     QApplication a(argc, argv);     QImage img(64,64, QImage::Format_ARGB32);     img.fill(Qt::red);     QSystemTrayIcon sti(QIcon(QPixmap::fromImage(img)));     sti.show();      QSystemTrayIcon::isSystemTrayAvailable(); // with this line, the QSystemTrayIcon does not appear      // comment the previous line to see that the QSystemTrayIcon works and that there is a bug in that line     return a.exec(); } ``` This testcase shows that the AppMenuPlatformSystemTrayIcon::~AppMenuPlatformSystemTrayIcon called by the temporary object created inside QSystemTrayIcon::isSystemTrayAvailable unregisters the icon.
2017-01-26 18:44:04 Brian Murray appmenu-qt5 (Ubuntu Xenial): status In Progress Fix Committed
2017-01-26 18:44:06 Brian Murray bug added subscriber Ubuntu Stable Release Updates Team
2017-01-26 18:44:13 Brian Murray bug added subscriber SRU Verification
2017-01-26 18:44:22 Brian Murray tags verification-needed
2017-02-07 19:57:27 Dmitry Shachnev tags verification-needed verification-done
2017-02-09 03:42:58 Launchpad Janitor appmenu-qt5 (Ubuntu Xenial): status Fix Committed Fix Released
2017-02-09 03:43:02 Chris J Arges removed subscriber Ubuntu Stable Release Updates Team
2017-02-13 18:28:07 Launchpad Janitor branch linked lp:appmenu-qt5/16.04