Hello, Substitute servers discovered over Avahi don’t disappear when they go off-line: they remain in /var/guix/discover/publish “forever” (?) and ‘guix substitute’ keeps trying to connect to them, in vain.
The problem AIUI is that the mDNS records are still valid according to their TTL and thus cached by avahi-daemon; we can only notice that things go wrong when trying to resolve: --8<---------------cut here---------------start------------->8--- $ avahi-browse _guix_publish._tcp -r + enp0s31f6 IPv6 guix-publish-xyz _guix_publish._tcp local + enp0s31f6 IPv4 guix-publish-xyz _guix_publish._tcp local Failed to resolve service 'guix-publish-xyz' of type '_guix_publish._tcp' in domain 'local': Timeout reached Failed to resolve service 'guix-publish-xyz' of type '_guix_publish._tcp' in domain 'local': Timeout reached --8<---------------cut here---------------end--------------->8--- (One way to reproduce that is to ‘pkill -9 avahi-daemon’ on the machine that advertises the service.) Problem is that ‘avahi-browse-service-thread’ attempts to resolve services once for all; thus it never notices that services went away, at least not until some long TTL has expired. Ludo’.