Subject: Re: bug#40775: 28.0.50; dns-query sometimes infloops

From: Tassilo Horn <[email-masked]>
Date: Thu, 28 Jan 2021 12:19:14 +0100

References: <[email-masked]> <[email-masked]> <[email-masked]>
User-agent: mu4e 1.5.7; emacs 28.0.50
In-reply-to: <[email-masked]>
Hi Lars,

>> For example, for me with emacs -Q
>>
>>   (benchmark-run 1
>>     (dns-query "_avatars-sec._tcp.zjp.codes" 'SRV)
>>     (dns-query "_avatars._tcp.zjp.codes" 'SRV))
>>
>> consistently takes 20 seconds, 10 seconds for each (unsuccessful)
>> query.  Those queries will be performed for every [email-masked] mail
>> address in a message.
>
> These lookups should now be cached, so the delay should only happen
> the first time, which should help some.

The above benchmark is now twice as fast taking 10 seconds each time I
run it.

> And all the lookups should be asynchronous, I think, so there should
> be no hangs.  (If I remember correctly.)

Yes, seems like gravatar.el now does asynchronous lookups.

> So I think everything in this bug report should work better now?  Are
> you still seeing problems in this area (if you're still using
> libravatar)?

I'm using the default, so gravatar now.  I've now tried with

--8<---------------cut here---------------start------------->8---
(setq gravatar-service 'libravatar)
(gravatar-retrieve "[email-masked]" (lambda (g &rest args)
                                        (message "GRAVATAR: %S" g)))
--8<---------------cut here---------------end--------------->8---

which doesn't seem to block but pollutes the *Messages* buffer with
stuff like

--8<---------------cut here---------------start------------->8---
(fn STATUS)" nil t] 11 "

(fn URL)"] "r=g&d=404&s=32" format "%s/%s?%s" gravatar-hash] 7 "

(fn URL)"] "zjp.codes" ((("_avatars-sec" . "https") ("_avatars" . "http"))) (#2) inhibit-changing-match-data mapcar #[257 "A\"" [dns-get data] 4 "

(fn RECORD)"] dns-get answers #[257 "\"" [dns-get priority] 4 "
--8<---------------cut here---------------end--------------->8---

Not sure if it would do that when being used "normally", i.e., by Gnus
or some other client.

Anyway, in either case, it doesn't block anymore.  Feel free to close
the bug.

Bye,
Tassilo