Hi
I've been recently bitten by an update in DBus, as now it seems that syncronous DBus calls receive a Timeout from the server, in about 5 seconds.
The problem happens on Ubuntu 20.04 LTS, with a default install of flutter and dbus 0.5.x. This issue did not happen on dbus 0.3.x
I receive the following unexpected exception from the server:
org.freedesktop.Avahi.TimeoutError: TimeoutReached
As I traced back into my code, this happens when calling the method org.freedesktop.Avahi.Server.ResolveService using the avahi service files.
The stack trace is the following:
00:15 +0: external_api Able to create a discovery without D-Bus complaining
Enabling workaround for V1 API with the 100ms wait behavior. Update your Avahi version to 0.8 or later if you want this warning to disappear.
00:17 +3: end-to-end Broadcast name and receive them on service enumeration
Enabling workaround for V1 API with the 100ms wait behavior. Update your Avahi version to 0.8 or later if you want this warning to disappear.
Cached service received: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET6', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET6', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
Item added! AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET6', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET6', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
Cached service received: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
Item added! AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '2',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
Cached service received: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '1',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '1',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
Item added! AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '1',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
DBG: AvahiServiceBrowserItemNew(path: 'DBusObjectPath('/Client57/ServiceBrowser1')',interface: '1',protocol: 'AvahiProtocol.AVAHI_PROTO_INET', name: 'ItemNew',type: '_bonsoire2e._tcp',domain: 'local'
00:22 +3 -1: end-to-end Broadcast name and receive them on service enumeration [E]
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 49:13 LinuxDBusBonsoirDiscovery.ready.<fn>
===== asynchronous gap ===========================
dart:async _StreamImpl.listen
package:dbus/src/dbus_client.dart 126:31 DBusSignalStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 39:12 LinuxDBusBonsoirDiscovery.ready
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart 70:48 main.<fn>.<fn>
test/bonsoir_linux_dbus_test.dart 61:68 main.<fn>.<fn>
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 84:7 LinuxDBusBonsoirDiscovery.start.<fn>
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:57 LinuxDBusBonsoirDiscovery.start.<fn>
===== asynchronous gap ===========================
dart:async _ForwardingStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:50 LinuxDBusBonsoirDiscovery.start
test/bonsoir_linux_dbus_test.dart 121:50 main.<fn>.<fn>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart main.<fn>.<fn>
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 49:13 LinuxDBusBonsoirDiscovery.ready.<fn>
===== asynchronous gap ===========================
dart:async _StreamImpl.listen
package:dbus/src/dbus_client.dart 126:31 DBusSignalStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 39:12 LinuxDBusBonsoirDiscovery.ready
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart 70:48 main.<fn>.<fn>
test/bonsoir_linux_dbus_test.dart 61:68 main.<fn>.<fn>
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 84:7 LinuxDBusBonsoirDiscovery.start.<fn>
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:57 LinuxDBusBonsoirDiscovery.start.<fn>
===== asynchronous gap ===========================
dart:async _ForwardingStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:50 LinuxDBusBonsoirDiscovery.start
test/bonsoir_linux_dbus_test.dart 121:50 main.<fn>.<fn>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart main.<fn>.<fn>
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 49:13 LinuxDBusBonsoirDiscovery.ready.<fn>
===== asynchronous gap ===========================
dart:async _StreamImpl.listen
package:dbus/src/dbus_client.dart 126:31 DBusSignalStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 39:12 LinuxDBusBonsoirDiscovery.ready
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart 70:48 main.<fn>.<fn>
test/bonsoir_linux_dbus_test.dart 61:68 main.<fn>.<fn>
org.freedesktop.Avahi.TimeoutError: Timeout reached
package:dbus/src/dbus_client.dart 1067:7 DBusClient._callMethod
===== asynchronous gap ===========================
dart:async _asyncErrorWrapperHelper
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 84:7 LinuxDBusBonsoirDiscovery.start.<fn>
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:57 LinuxDBusBonsoirDiscovery.start.<fn>
===== asynchronous gap ===========================
dart:async _ForwardingStream.listen
package:bonsoir_linux_dbus/src/linux_dbus_bonsoir_discovery.dart 76:50 LinuxDBusBonsoirDiscovery.start
test/bonsoir_linux_dbus_test.dart 121:50 main.<fn>.<fn>
===== asynchronous gap ===========================
dart:async _asyncThenWrapperHelper
test/bonsoir_linux_dbus_test.dart main.<fn>.<fn>
00:23 +3 -1: Some tests failed.
My test file and entire source code is public at https://github.com/Piero512/bonsoir_linux_dbus
It seems like DBus is missing a timeout parameter for the method call and now that it parses the error messages correctly, this happens.