Skip to content
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

Improve and clarify error retry logic #956

Closed
absorbb opened this issue Jul 27, 2022 · 1 comment · May be fixed by #964
Closed

Improve and clarify error retry logic #956

absorbb opened this issue Jul 27, 2022 · 1 comment · May be fixed by #964
Assignees

Comments

@absorbb
Copy link
Contributor

absorbb commented Jul 27, 2022

Problem

  • Currently Jitsu retries error infinitely - that doesn't make much sense because many kind of errors cannot be solved with retries.
  • For streaming storages error leads to growth of redis queue
  • Retry and fallback logic is not clear and not documented

Solution

  • Introduce server.error_retry_period_hours configuration parameter that will work as default for all destinations (streaming and batch). Default value: 24 hours
  • Introduce DestinationConfig error_retry_period_hours parameter that will override default value on destination level.

uploader.go unify fallback logic:

  • all errors (parsingErrors, failedEvents, resultPerTable.result.Err) must go to Fallback only after error_retry_period_hours passes. (seems that currently for parsingErrors and failedEvents we flood fallback logs with copies of the same events on each uploader run)
  • after error_retry_period_hours passes jitsu needs to archive incoming file and cleanup status

streaming.go:

  • don't use IsConnectionError check – retry all errors
  • instead of 20 sec hardcode introduce server.streaming_retry_delay_minutes parameter. Default: 1
  • after server.error_retry_period_hours passes - stop retries and Fallback error events.
  • Current fallback logic is hidden in abstract.go AccountResult and must be removed from there.

documentation:

  • write Error Handling and Retries documentation page that describes that logic and configuration parameters
@Alessar Alessar linked a pull request Sep 4, 2022 that will close this issue
@absorbb
Copy link
Contributor Author

absorbb commented Sep 5, 2022

No changes in uploader.go yet

Current fallback logic is hidden in abstract.go AccountResult and must be removed from there.

Not addressed yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants