Package: b4
Version: 0.6.2-1
Severity: normal
Hello,
for me the following b4 command reproducibly fails:
$ b4 am [email protected]
Looking up https://lore.kernel.org/r/YO82s5MC6HA8mL2Q%40google.com
Grabbing thread from lore.kernel.org/linux-input
Analyzing 5 messages in the thread
---
Thread incomplete, attempting to backfill
Grabbing thread from lore.kernel.org/alsa-devel
Grabbing thread from lore.kernel.org/dmaengine
Grabbing thread from lore.kernel.org/kvm
Loaded 1 messages from https://lore.kernel.org/kvm/
Grabbing thread from lore.kernel.org/linux-acpi
Grabbing thread from lore.kernel.org/linux-arm-kernel
Server returned an error: 404
Grabbing thread from lore.kernel.org/linux-arm-msm
Grabbing thread from lore.kernel.org/linux-cxl
Grabbing thread from lore.kernel.org/linux-fpga
Grabbing thread from lore.kernel.org/linux-hyperv
Grabbing thread from lore.kernel.org/linux-i2c
Grabbing thread from lore.kernel.org/linux-i3c
Server returned an error: 404
Grabbing thread from lore.kernel.org/lkml
Loaded 4 messages from https://lore.kernel.org/lkml/
Successfully backfilled missing patches
---
Writing
./v4_20210713_u_kleine_koenig_bus_make_remove_callback_return_void.mbx
✔ [PATCH v4 1/5] PCI: endpoint: Make struct pci_epf_driver::remove
return void
✔ [PATCH v4 2/5] s390/cio: Make struct css_driver::remove return void
✔ [PATCH v4 3/5] s390/ccwgroup: Drop if with an always false condition
✔ [PATCH v4 4/5] s390/scm: Make struct scm_driver::remove return void
✔ [PATCH v4 5/5] bus: Make remove callback return void
+ Acked-by: Dmitry Torokhov <[email protected]> (✓
DKIM/gmail.com)
+ Acked-by: Geert Uytterhoeven <[email protected]>
+ Acked-by: Sudeep Holla <[email protected]>
Traceback (most recent call last):
File "/usr/bin/b4", line 33, in <module>
sys.exit(load_entry_point('b4==0.6.2', 'console_scripts', 'b4')())
File "/usr/lib/python3/dist-packages/b4/command.py", line 213, in cmd
cmdargs.func(cmdargs)
File "/usr/lib/python3/dist-packages/b4/command.py", line 40, in
cmd_am
b4.mbox.main(cmdargs)
File "/usr/lib/python3/dist-packages/b4/mbox.py", line 538, in main
mbox_to_am(threadfile, cmdargs)
File "/usr/lib/python3/dist-packages/b4/mbox.py", line 114, in
mbox_to_am
am_mbx = lser.save_am_mbox(mbx, noaddtrailers=cmdargs.noaddtrailers,
File "/usr/lib/python3/dist-packages/b4/__init__.py", line 565, in
save_am_mbox
msg = lmsg.get_am_message(add_trailers=add_trailers,
trailer_order=trailer_order, copyccs=copyccs)
File "/usr/lib/python3/dist-packages/b4/__init__.py", line 1400, in
get_am_message
self.fix_trailers(trailer_order=trailer_order, copyccs=copyccs)
File "/usr/lib/python3/dist-packages/b4/__init__.py", line 1361, in
fix_trailers
attsig = LoreAttestationSignatureDKIM(fmsg.msg) # noqa
File "/usr/lib/python3/dist-packages/b4/__init__.py", line 1707, in
__init__
res = dkim.verify(self.msg.as_bytes(), dnsfunc=dkim_get_txt)
File "/usr/lib/python3/dist-packages/dkim/__init__.py", line 1352, in
verify
return d.verify(dnsfunc=dnsfunc)
File "/usr/lib/python3/dist-packages/dkim/__init__.py", line 940, in
verify
return self.verify_sig(sig, include_headers, sigheaders[idx],
dnsfunc)
File "/usr/lib/python3/dist-packages/dkim/__init__.py", line 773, in
verify_sig
self.pk, self.keysize, self.ktag, self.seqtlsrpt =
load_pk_from_dns(name,
File "/usr/lib/python3/dist-packages/dkim/__init__.py", line 481, in
load_pk_from_dns
s = dnsfunc(name, timeout=timeout)
File "/usr/lib/python3/dist-packages/b4/__init__.py", line 2452, in
dkim_get_txt
a = _resolver.resolve(lookup, dns.rdatatype.TXT,
raise_on_no_answer=False, lifetime=timeout, search=True)
File "/usr/lib/python3/dist-packages/dns/resolver.py", line 1043, in
resolve
timeout = self._compute_timeout(start, lifetime)
File "/usr/lib/python3/dist-packages/dns/resolver.py", line 950, in
_compute_timeout
raise Timeout(timeout=duration)
dns.exception.Timeout: The DNS operation timed out after
5.001782417297363 seconds
I wiresharked the DNS traffic and found out that my provider's DNS
server doesn't reply "big" queries without edns:
$ dig +noedns fm3._domainkey.messagingengine.com TXT
;; Truncated, retrying in TCP mode.
;; communications error to 192.168.80.1#53: end of file
; <<>> DiG 9.16.15-Debian <<>> +noedns
fm3._domainkey.messagingengine.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21882
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;fm3._domainkey.messagingengine.com. IN TXT
;; Query time: 7 msec
;; SERVER: fdb0:5279:7365:8000::1#53(fdb0:5279:7365:8000::1)
;; WHEN: Sun Jul 18 22:17:15 CEST 2021
;; MSG SIZE rcvd: 52
If I query one of the public DNS servers (like 1.1.1.1 or 8.8.8.8), or
if I use an edns query (i.e. drop +noedns) or if I query one of the ipv6
servers of my provider I get a proper answer.
If I understood correctly using edns is the only way to properly get
replies bigger than 512 bytes, so it doesn't seem unreasonable to use
edns for TXT records?!
Best regards
Uwe
-- System Information:
Debian Release: 11.0
APT prefers testing-debug
APT policy: (700, 'testing-debug'), (700, 'stable-updates'), (700,
'testing'), (700, 'stable'), (600, 'unstable'), (500, 'unstable-debug'), (500,
'stable-debug'), (500, 'oldstable'), (499, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, arm64
Kernel: Linux 5.10.0-6-amd64 (SMP w/4 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages b4 depends on:
ii python3 3.9.2-3
ii python3-dkim 1.0.5-1
ii python3-dnspython 2.0.0-1
ii python3-requests 2.25.1+dfsg-2
b4 recommends no packages.
b4 suggests no packages.
-- no debconf information