Red Hat Bugzilla – Bug 1371920
D-Bus signal PropertiesChanged emitted for wrong interface type
Last modified: 2016-11-03 15:29:43 EDT
Backport fix for upstream bug https://bugzilla.gnome.org/show_bug.cgi?id=770629 Look at: dbus-monitor --system --monitor "sender=org.freedesktop.NetworkManager" gives: signal time=1472646730.802627 sender=:1.11 -> destination=(null destination) serial=29727 path=/org/freedesktop/NetworkManager/Devices/1; interface=org.freedesktop.NetworkManager.Device.Statistics; member=PropertiesChanged array [ dict entry( string "State" variant uint32 110 ) dict entry( string "StateReason" variant struct { uint32 110 uint32 60 } ) ] note: "interface=org.freedesktop.NetworkManager.Device.Statistics". Should be "interface=org.freedesktop.NetworkManager.Device" And the same for other D-Bus objects that have multiple interfaces. Fixed in nm-1-4 branch as: https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=923eaa6a478f95a69d1b9ccac429c7ffea3e4af4
this is important, because due to this bug the signals in NetworkManager's D-Bus API originate from the wrong source interface. That could confuse clients. The fix is rather straight forward.
Reproduce for QA: Look at the emitted PropertiesChanged signal from the D-Bus API: $ dbus-monitor --system --monitor "sender=org.freedesktop.NetworkManager" check, that the source-interface of the announced properties is really the interface where the property is defined. e.g. wrong is: signal time=1472646730.802627 sender=:1.11 -> destination=(null destination) serial=29727 path=/org/freedesktop/NetworkManager/Devices/1; interface=org.freedesktop.NetworkManager.Device.Statistics; member=PropertiesChanged array [ dict entry( string "State" variant uint32 110 ) dict entry( string "StateReason" variant struct { uint32 110 uint32 60 } ) ] It is wrong, because property "StateReason" should be on the interface "org.freedesktop.NetworkManager.Device". See: https://developer.gnome.org/NetworkManager/stable/ https://developer.gnome.org/NetworkManager/stable/gdbus-org.freedesktop.NetworkManager.Device.html
yeah, fix was wrong. Fix-v2 on review on https://bugzilla.gnome.org/show_bug.cgi?id=770629#c5
fix merged upstream.
upstream: nm1-4-: https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=c87b89bf8f7d0e45df08e84503eb16f5ef2ce3c6 Back to ON_QA. Note, my original reproducer was wrong. I think this commit message explains it in detail: https://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=c29ca9b8760749ddd81b21e147c05403b9bd9561 There is no "PropertiesChanged" signal for interface "org.freedesktop.NetworkManager.Device". Instead, for devices, you should see all properties being announced on the other interfaces that the device have. Like "o.fd.NM.Device.Ethernet", "o.fd.NM.Device.Bridge", etc.
correct dbus signals are visible now
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHSA-2016-2581.html