A records disappearing from zone

551 views
Skip to first unread message

x...@rubynerd.net

unread,
Aug 5, 2016, 10:09:18 AM8/5/16
to cloud-dns-discuss
Hey,

I'm seeing my A records periodically being removed from my DNS records - only A records are effected, MX and CNAME records are fine.

This is obviously a little bit of an issue for me, the product is completely unusable.

The only thing I can think of that would cause such behaviour is that I had two zones in two different projects with the same zone name and same DNS name (rubynerd, rubynerd.net across rubynerd-dns and rubynerd-net), but I've deleted the zone from rubynerd-dns and the problem remains.

Has anyone experienced this before? I can't see any other avenues of escalating without paying for support.

Thanks,
Luke

Alex Dupuy

unread,
Aug 5, 2016, 1:57:13 PM8/5/16
to cloud-dns-discuss
I'm seeing my A records periodically being removed from my DNS records - only A records are effected, MX and CNAME records are fine.

Are they disappearing from internal view (Cloud Console) or just from external DNS queries? If the latter, you should also check whether they are disappearing from the authoritative servers or from your local recursive server / public recursive service like OpenDNS.
 
The only thing I can think of that would cause such behaviour is that I had two zones in two different projects with the same zone name and same DNS name (rubynerd, rubynerd.net across rubynerd-dns and rubynerd-net), but I've deleted the zone from rubynerd-dns and the problem remains.

You might want to check that your domain registration specifies the correct name servers, since your two projects would have different name server sets (different letters a/b/c...) and it might "sort of work" even if the wrong one were selected.

@rubynerd

unread,
Aug 5, 2016, 2:13:08 PM8/5/16
to Alex Dupuy, cloud-dns-discuss
Hey Alex,

They're disappearing from both internal and external views, and I've checked with Gandi and dig that the NS records for the domain are set correctly.

It's really weird - it's like the zone is being swept and every "A" record is just deleted.

Is there a way to escalate technical problems (problems with Google Cloud) like this to Google Cloud Support without paying for support?

Thanks,
Luke

--
You received this message because you are subscribed to a topic in the Google Groups "cloud-dns-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cloud-dns-discuss/244aX_BqDkw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cloud-dns-disc...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Robert Evans

unread,
Aug 5, 2016, 3:16:10 PM8/5/16
to @rubynerd, Alex Dupuy, cloud-dns-discuss
On Fri, Aug 5, 2016 at 2:12 PM, @rubynerd <x...@rubynerd.net> wrote:
Hey Alex,

They're disappearing from both internal and external views, and I've checked with Gandi and dig that the NS records for the domain are set correctly.

It's really weird - it's like the zone is being swept and every "A" record is just deleted.

Hi Luke, we're not aware of any problems that would cause this behavior.

You can list your zone's change history to see previous edits made to the zone. See https://cloud.google.com/dns/api/v1/changes/list.

Is there a way to escalate technical problems (problems with Google Cloud) like this to Google Cloud Support without paying for support?

Technical escalation is available only with a paid support package at this time. You can see a comparison of support packages available at https://cloud.google.com/support/.

@rubynerd

unread,
Aug 5, 2016, 5:51:43 PM8/5/16
to Robert Evans, Alex Dupuy, cloud-dns-discuss
Thank you for the changes API - as it turns out, "replaceRecords" in gcloud-node doesn't replace only the records you specify - it'll delete all of the records of the type you specify (in my case, "A" records).

So, my Google Cloud Function that updates the zone with IP addresses was effectively wiping out the zone every hour.

Thank you very much for your help - I really appreciate it!

Thanks,
Luke

Alex Dupuy

unread,
Aug 5, 2016, 9:46:17 PM8/5/16
to cloud-dns-discuss, eva...@google.com, alex...@google.com
Luke wrote:
it turns out, "replaceRecords" in gcloud-node doesn't replace only the records you specify - it'll delete all of the records of the type you specify (in my case, "A" records).

Is it deleting records for other domain names? For example, if you replaceRecords for 'myserver.example.com' type 'a'  is it removing the A records for unrelated-innocent-server.example.com as well?  If it is doing that, it is a bug in google-cloud (as gcloud-node is now known) and we should open an issue against it.

Otherwise, it is working as intended, but in any case we need to open an issue against the documentation because all Cloud DNS APIs operate on resource record sets—which are all the DNS records with the same domain name and resource type—this is why the method is called replaceRecords, not replaceRecord. This is a common misunderstanding and the documentation should make it clear what will happen when you call it.

@rubynerd

unread,
Aug 6, 2016, 6:59:07 AM8/6/16
to Alex Dupuy, cloud-dns-discuss, eva...@google.com
Hey Alex,

To confirm, I'm using replaceRecords, with one 'A' record (home.rubynerd.net), and it's deleting every other 'A' record in the "rubynerd.net" zone - which I can actually see in the dns/v1/changes/list response. I'm happy to share the code that's calling replaceRecords if you would like to take a look yourself.

Is it deleting records for other domain names?
It's deleting other A-type records in the zone that aren't specified in the array I'm passing into replaceRecords.

> For example, if you replaceRecords for 'myserver.example.com' type 'a'  is it removing the A records for unrelated-innocent-server.example.com as well? 
Yes, this is exactly what's happening - I'm not sure if it's good etiquette to post a screenshot to this mailing list, but I'm happy to provide the results of dns/v1/changes/list to illustrate this is happening.

However, looking back at the documentation for replaceRecords, this is expected behaviour:

> Provide a record type that should be deleted and replaced with other records.

The problems here are two fold, one is my inability to comprehensively read documentation, two is my distrust of the way gcloud-node/google-cloud is structured, because the API (zone.record()) for retrieving a record is the same API as creating a record, and it's not clear how this works in the context of a changeset. Honestly, it seems like you're composing both a query for the API ("get me this record") and new object ("make me this record") with the same function, and that's slightly unsettling to me. I'm trying to treat this API from an object-orientated perspective, which doesn't seem to be how this library is structured.

I disabled the Cloud Function running replaceRecords last night, and now records are actually staying around. Thank you very much for your assistance in solving this, I really appreciate it!

Thanks,
Luke


Reply all
Reply to author
Forward
0 new messages