Property "v" in DBus interface stops the execution of the daemon
Submitted by Aleksander Morgado
Assigned to Aleksander Morgado
Link to original bug (#704319)
Description
Using glib 2.36.3 here.
So the setup is quite simple: daemon uses gdbus-codegen generated code to handle the DBus interface; client uses gdbus-codegen generated code to map the DBus objects.
I add a new property in the DBus interface with signature "v", e.g.:
Actually, my real use case is using a property with signature "(uv)" (kind of a dictionary with a single entry where the first integer is an id which helps to identify also the type of variant). The problem happens both when using "v" and "(uv)".
Now, as soon as I add the property in the interface, without additional code to set a value in the daemon-side, the daemon will start to crash when the client-side loads the remote object. The daemon log will say:
name_lost_cb(): Could not acquire the 'XX' service name g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
What's wrong with a "v" or "(uv)" property in DBus? Am I missing something obvious? Any hints?
Version: 2.36.x