GithubHelp home page GithubHelp logo

Comments (13)

ross avatar ross commented on July 4, 2024

Looks like that first one, doesn't have a . on the end:

      "Name": "*.foo.myzone.com",
      "ResourceRecords": [
        {
          "Value": "test.myzone.com"
        }
      ],

Can you verify that's the case in the actual batch that's getting sent up and it's not just an accident from anonymizing to post?

If so I can take a look and try to figure out how that's coming about.

from octodns-route53.

anemyte avatar anemyte commented on July 4, 2024

Can you verify that's the case in the actual batch that's getting sent up and it's not just an accident from anonymizing to post?

Sorry, it is I who messed this up during anonymization. The dot was there in the original output.

I also noticed that the problem does not appear with Cloudflare, so this might be a Route53-specific problem.

from octodns-route53.

ross avatar ross commented on July 4, 2024

OK. I'll have to mess around and create the situation and debug in detail. It is kind of sounding like something funky on the Route53 side, but that would surprise me.

from octodns-route53.

anemyte avatar anemyte commented on July 4, 2024

Thanks! Let me know if I can help.

from octodns-route53.

ross avatar ross commented on July 4, 2024

I was able to confirm the behavior and it certainly does appear to be a bug on Route53's end. The verbatim batch of changes that was sent up to Route53:

{'batch': {'Changes': [{'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-1.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-1.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-2.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-2.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-3.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-3.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-4.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-4.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-5.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-5.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}}],
           'Comment': 'Change: 97b8313b5b93444d977567488e5ff81e'}}

And after sending that change the verbatim rrsets returned from Route53 when querying the zone are:

{'rrsets': [{'Name': 'exxampled.com.',
             'ResourceRecords': [{'Value': 'ns-928.awsdns-52.net.'},
                                 {'Value': 'ns-1133.awsdns-13.org.'},
                                 {'Value': 'ns-1788.awsdns-31.co.uk.'},
                                 {'Value': 'ns-282.awsdns-35.com.'}],
             'TTL': 172800,
             'Type': 'NS'},
            {'Name': 'exxampled.com.',
             'ResourceRecords': [{'Value': 'ns-928.awsdns-52.net. '
                                           'awsdns-hostmaster.amazon.com. 1 '
                                           '7200 900 1209600 86400'}],
             'TTL': 900,
             'Type': 'SOA'},
            {'Name': 'cname-1.exxampled.com.',
             'ResourceRecords': [{'Value': 'www-1.exxampled.com'}],
             'TTL': 3600,
             'Type': 'CNAME'},
            {'Name': 'cname-2.exxampled.com.',
             'ResourceRecords': [{'Value': 'www-2.exxampled.com'}],
             'TTL': 3600,
             'Type': 'CNAME'},
            {'Name': 'cname-3.exxampled.com.',
             'ResourceRecords': [{'Value': 'www-3.exxampled.com.'}],
             'TTL': 3600,
             'Type': 'CNAME'},
            {'Name': 'cname-4.exxampled.com.',
             'ResourceRecords': [{'Value': 'www-4.exxampled.com'}],
             'TTL': 3600,
             'Type': 'CNAME'},
            {'Name': 'cname-5.exxampled.com.',
             'ResourceRecords': [{'Value': 'www-5.exxampled.com'}],
             'TTL': 3600,
             'Type': 'CNAME'}]}

Results are unchanged 5-10m later. If I run it again. The 4 remaining changes are in the batch and only one of them gets updated.

This is a really funky one. If you have a Route53 support issue or contact/TAM please reach out to them with this issue and CC me, [email protected].

I no longer have a contact there, but will try and see if I can find someone.

from octodns-route53.

ross avatar ross commented on July 4, 2024

In order to further test/debug I recreated the records w/o the .s and then added them in the config and also modified the TTL of all the records by setting a default on the provider. Batch for that verbatim:

{'batch': {'Changes': [{'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-1.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-1.exxampled.com.'}],
                                              'TTL': 42,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-2.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-2.exxampled.com.'}],
                                              'TTL': 42,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-3.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-3.exxampled.com.'}],
                                              'TTL': 42,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-4.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-4.exxampled.com.'}],
                                              'TTL': 42,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-5.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-5.exxampled.com.'}],
                                              'TTL': 42,
                                              'Type': 'CNAME'}}],
           'Comment': 'Change: b75fbbb36d8f4ecd9e2a5fb6b51af308'}}

With this all 5 records updated in the first go, rather than just the 1 above. I also verified that the same problem exists when going the other direction and removing the .s.

I also verified that it seems to be something specific about the . on the end. When I changed the www numbers:

{'batch': {'Changes': [{'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-1.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-a.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-2.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-b.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-3.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-c.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-4.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-d.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-5.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-e.exxampled.com.'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}}],
           'Comment': 'Change: 23d97d14ec69464e90c8768d24961b59'}}

They all changed on the first go. I also tried changing the last character which worked fine.

{'batch': {'Changes': [{'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-1.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-a.exxampled.comx'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-2.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-b.exxampled.comx'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-3.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-c.exxampled.comx'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-4.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-d.exxampled.comx'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-5.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-e.exxampled.comx'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}}],
           'Comment': 'Change: b868ab08650c45d89e10ddc21f2e9500'}}

I even tried appending a non-. character to see if it was something about appending to the end and that worked fine, so it really seems to be a problem with adding .s.

{'batch': {'Changes': [{'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-1.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-a.exxampled.comxy'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-2.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-b.exxampled.comxy'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-3.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-c.exxampled.comxy'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-4.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-d.exxampled.comxy'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}},
                       {'Action': 'UPSERT',
                        'ResourceRecordSet': {'Name': 'cname-5.exxampled.com.',
                                              'ResourceRecords': [{'Value': 'www-e.exxampled.comxy'}],
                                              'TTL': 3600,
                                              'Type': 'CNAME'}}],
           'Comment': 'Change: 2f45babe57a043b08d2f1caf977a6e2f'}}

from octodns-route53.

anemyte avatar anemyte commented on July 4, 2024

This is a really funky one. If you have a Route53 support issue or contact/TAM please reach out to them with this issue and CC me, [email protected].

Nope, I did not open a ticket there, I just brute-forced my changes instead :) Now that all records are fixed, I don't think this will be a major issue.

I suggest keeping this issue open to avoid similar questions, but I also don't mind if you close it.
In any case, thank you for your support!

from octodns-route53.

ross avatar ross commented on July 4, 2024

So I have zero ability to file a support issue w/AWS given that I'm an individual with no support plan or anything. Not something I'm going to pay for. I wish they'd give me some credits to use when developing octodns-route53 as it currently costs me money to work on it :-/

Anyway, just realized this is in octodns/octodns and probably should live in octodns/octodns-route53. Going to move it there now.

from octodns-route53.

ross avatar ross commented on July 4, 2024

Finally got around to posting to the forum https://repost.aws/questions/QUj9pIHHnyRIGKNJqjqLgaZQ/route-53-batch-of-changes-succeeding-but-only-making-one-of-the-changes. We'll see if that gets any traction. I wish I knew someone paying for support with a TAM...

from octodns-route53.

ross avatar ross commented on July 4, 2024

Nothing on the AWS forum post, not surprised if you aren't paying for support it's nonexistent. Going to leave this open, but not holding out hope that it'll get addressed 😦

from octodns-route53.

anemyte avatar anemyte commented on July 4, 2024

I doubt that the support will be of any help in this case, we probably need a dev to see that ticket of yours. I think we might find better help by filing an issue in boto3, they say in their README.rst that

Boto3 is maintained and published by Amazon Web Services.

What do you think? I can file an issue there later this week if you think they might help.

from octodns-route53.

ross avatar ross commented on July 4, 2024

What do you think? I can file an issue there later this week if you think they might help.

Worth a try.

from octodns-route53.

github-actions avatar github-actions commented on July 4, 2024

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days.

from octodns-route53.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.