Cannot fetch from IPv6-only instance with CNAME entry #947
Labels
No labels
approved, awaiting change
broken setup
bug
cannot reproduce
configuration
documentation
duplicate
enhancement
extremely low priority
feature request
Fix it yourself
help wanted
invalid
mastodon_api
needs change/feedback
needs docs
needs tests
not a bug
not our bug
planned
pleroma_api
privacy
question
static_fe
triage
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
AkkomaGang/akkoma#947
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Your setup
From source
Extra details
Alpine 3.22
Version
3.15.2-wf-100-gd3da49f2-u16d7d612f-trunk (i.e. basically
16d7d612f)PostgreSQL version
17
What’s wrong?
Fetches from an IPv6-only instance whose domain is a CNAME entry fail with
:nxdomain(frequently showing up in logs), fetches from IPv6-only instances without a CNAME entry succeed since #708.The odd thing is, manually Finch and Mint there’s no issue with connecting to the instance providing
inet6: trueis set intransport_opts(which we set by default). Not even manualTesla.getcalls fail when providing a simple client using the Finch adapter and our existing Finch pool.However, using
Tesla.getwithout providing this simple test client; this should whatever default was specified in the config — but our config provides an identical client setup(!):Not sure if somethings wrong with our Tesla setup or if it’s a Tesla bug
Test instance (just grabbing what showed up in logs):
ipv6.camp: IPv6-only, no CNAMEgts.wezen.famfo.xyz: CNAME domain; IPv6-onlySeverity
I can manage
Have you searched for this issue?
we're a bit out of date with tesla/finch deps - you could potentially try bumping those?
i'm trying to test it but my ISP doesn't provide ipv6
It gets weirder: it actually works on my local machine in both
devandprodenv, but not on the actual prod instance from which the above report was generated. Erlang, Elixir, etc versions are equivalent (both use Aloine 3.22 packages). DNS responses also look similar.The only difference is the local machine being x86_64 and the prod instance aarch64, but this shouldn’t matter for DNS resolution.
DNS responses on prod instance
DNS responses on local machine
(note: the Akkoma version listed in OP is patched to use a newer Finch, but the result does not change when rolling the instance back to the default Finch version nor does it change when moving Finch to 0.19 on the local machine. At least on the local machine
prodvsdevenv did not make a difference)After upgrading Tesla (and its deps) to the newest version:
Both the version with explicit and implicit
client, sometimes fail and other times succeed. If it succeeded once, it usually keeps succeeding for a while suggesting the successful resolution gets cached for a while?I cannot say whether the same occured before upgrading versions.
Either way, during normal operation, basically all my instance’s attempts to fetch something from the CNAME-IPv6 instance would run into the cold-cache case, explaining the prevalence of logs about it.
Still can’t reproduce this on the same machine with
Tesla+Finchdirectly thoughunrelated side note: we probably should set
protocols: [:http2, :http1]in our Finch pool opts to not force HTTP1. Though unless we go HTTP2-only (which might cause interop issues) we won’t get multiplexing