From 23579e4dd42b1e144e464bb79d948eb1bd3af6ad Mon Sep 17 00:00:00 2001 From: pascal Date: Mon, 3 Aug 2026 22:38:12 +0200 Subject: [PATCH] Skip the left-join NULL row instead of failing the account load + drop unsupported record types silently to match buildAppliedZoneCandidates --- .../internals/network_map_db/pgsql/dns.go | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/management/internals/network_map_db/pgsql/dns.go b/management/internals/network_map_db/pgsql/dns.go index 182aeeeca..05d3e75d2 100644 --- a/management/internals/network_map_db/pgsql/dns.go +++ b/management/internals/network_map_db/pgsql/dns.go @@ -49,6 +49,10 @@ func GetAppliedZoneCandidatesViaPgxConnection(ctx context.Context, conn *pgx.Con toret := make([]networkmap.AppliedZoneCandidate, 0, len(zones)) currentZoneId := "" for _, z := range zones { + if !z.RecordType.Valid { + continue + } + zone := nmdata.CustomZone{} err := networkmapdb.FromSqlTypesToSharedTypes( reflect.ValueOf(&z), reflect.ValueOf(&zone)) @@ -61,33 +65,28 @@ func GetAppliedZoneCandidatesViaPgxConnection(ctx context.Context, conn *pgx.Con return nil, err } + if z.Id != currentZoneId { + zone.Records = []nmdata.SimpleRecord{} + toret = append(toret, appliedZoneCandidateFromZone(zone, distributionGroups)) + currentZoneId = z.Id + } + rtype, rdata, err := recordTypeAndRdata(z.RecordType.String, z.RecordRData.String) if err != nil { + if errors.Is(err, DnsUnsupportedRecordTypeError) { + continue + } return nil, err } - record := nmdata.SimpleRecord{ + + lastZone := &toret[len(toret)-1] + lastZone.Zone.Records = append(lastZone.Zone.Records, nmdata.SimpleRecord{ Name: z.RecordName.String, Class: z.RecordClass.String, TTL: int(z.RecordTTL.Int64), RData: rdata, Type: rtype, - } - zone.Records = []nmdata.SimpleRecord{record} - - if len(toret) == 0 { - toret = append(toret, appliedZoneCandidateFromZone(zone, distributionGroups)) - currentZoneId = z.Id - continue - } - - if z.Id == currentZoneId { - lastZone := &toret[len(toret)-1] - lastZone.Zone.Records = append(lastZone.Zone.Records, record) - continue - } - - toret = append(toret, appliedZoneCandidateFromZone(zone, distributionGroups)) - currentZoneId = z.Id + }) } return toret, nil }