Giter VIP home page Giter VIP logo

Comments (8)

shahman avatar shahman commented on August 28, 2024

This is probably related to the fact that on taking longer than 5 seconds, you end up with a redirect and a job id which is not then followed up on to retrieve the underlying records. Not sure how this worked in denominator version 1.x

from denominator.

codefromthecrypt avatar codefromthecrypt commented on August 28, 2024

this is unfortunately common in this particular provider, but not something easy to troubleshoot. Usually the issue clears eventually. If this is consistently in error, I'd contact Dyn as the api should have no problem querying hundreds of records.

from denominator.

shahman avatar shahman commented on August 28, 2024

I believe the problem is that the wrapper around dynect apis is not handling this properly. For large records, dyn issues a redirect giving the URL with the job id in it. That redirected URL actually holds all the records that are needed.

Thanks for your response Adrian.

from denominator.

shahman avatar shahman commented on August 28, 2024

curl -i -H 'Auth-Token: xyz' -H 'Content-Type: application/json' "https://api2.dynect.net/REST/AllRecord/isp.nflxvideo.net?detail=Y"
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Wed, 01 Jul 2015 19:19:54 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{"status": "incomplete", "data": null, "job_id": 1730280267}

Then, we take the job and do as below
curl -i -H 'Auth-Token: xyz' -H 'Content-Type: application/json' "https://api2.dynect.net/REST/Job/1730280267"
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Wed, 01 Jul 2015 19:21:00 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

from denominator.

codefromthecrypt avatar codefromthecrypt commented on August 28, 2024

Denominator has numerous workarounds to Dyn problems including both patterns you pasted. These are also tested. You can also use the CLI with verbose on to watch denominator retry.
https://github.com/Netflix/denominator/blob/master/dynect/src/test/java/denominator/dynect/DynECTTest.java#L85
https://github.com/Netflix/denominator/blob/master/dynect/src/test/java/denominator/dynect/DynECTTest.java#L74

What happened was that the server errors beyond the retry count (5 tries ~5 seconds).
https://github.com/Netflix/feign/blob/master/core/src/main/java/feign/Retryer.java#L42

I found the code that was used in denominator 1.0 had an insanely high redirect count of 100. I actually remember doing this, as even 25 redirects sometimes failed. The service improved for a while, and maybe it is back to terrible.
https://github.com/jclouds/jclouds/blob/master/providers/dynect/src/main/java/org/jclouds/dynect/v3/DynECTProviderMetadata.java#L56

My strong opinion is that you escalate to DynECT, as really high retries feign a solution (no pun intended). Note you can reproduce this using denominator's CLI, as it will output the http calls used.

If you really want to make this have a high retry count, then feel free to raise a pull request. Note that it will break tests that show that we retry 5 times. Basically, you will add a .retryer here

https://github.com/Netflix/denominator/blob/master/dynect/src/main/java/denominator/dynect/DynECTProvider.java#L175

Hope this helps

from denominator.

codefromthecrypt avatar codefromthecrypt commented on August 28, 2024

actually tell you what. If you are ok with the 100 retry option, I can put that in and push a release out tomorrow. It would be pretty easy for me to change. I'd only ask that if it fails after 100 retries, you ping dyn as I don't use the service anymore so don't have a support context. deal?

from denominator.

shahman avatar shahman commented on August 28, 2024

I am not sure that would fix it. It always worked for me when I issued a request and then used the job id to access the records.

We are going to try and delete a bunch of our old records and that should hopefully bring it down under 5 seconds so that we don't have to follow the job id route.

If that doesnt work, we can try the 100 retry option. Thank you for volunteering!

from denominator.

codefromthecrypt avatar codefromthecrypt commented on August 28, 2024

np

from denominator.

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.