-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow the tap to continue on server side timeout (error 502) #52
Comments
|
I opened https://gitlab.com/meltano/sdk/-/issues/282 to suggest a solution at the SDK level. |
A couple of ideas to let the tap continue upon errors (assuming backoff has tried N times and failed, like we've seen a number of times in our logs): Tolerated errorsWe could add all sorts of error codes to the Override stream request decoratorThe The difficulty would be in figuring out which errors are temporary, and which are not:
A possible option would be to add a |
In their docs, github mention that long running requests (>10 sec) are interrupted and return nothing. We hit such a case and it seems that Github returns a 502 Bad gateway HTTP status code.
In our case, the issue comments stream gave such errors.
To see the error, run
curl -v -o /dev/null "https://api.github.com/repos/bitcoin/bitcoin/issues/comments?per_page=100&sort=updated&direction=asc&since=2019-11-25T15:20:23"
(this discards the output which is irrelevant, but shows the headers and the error 502). Curl helpfully shows a timer which stops at 10 seconds, confirming this is a server-side timeout.When the tap is running with multiple repos listed in its config, it chokes on such errors and returns prematurely, and never finishes the list of tasks it's supposed to do. In my testing, retrying the same query led to the same result consistently. Lowering the
per_page
param seemed to get the data (in the case above, I had to go down to 10).The tap should be able to get around such errors in a cleaner way:
per_page
value for a while (say until it completed the current stream/repo)MAX_PER_PAGE
is set at 1000, and should be 100 max, according to docsThe text was updated successfully, but these errors were encountered: