-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Queued Retry Unusable without Batch Processor #1813
Comments
Forgot to mention, the way the Batch processor alleviates this issue is by ignoring the incoming context and using |
@chris-smith-zocdoc do you want to give a try to the per exporter queued retry config instead, see #1821? Let me know if that shows the same problem, and will investigate. |
@bogdandrutu yes this affects the per exporter queued retry config also. example config
|
@chris-smith-zocdoc finally I was able to find the cause |
Thanks @bogdandrutu ! |
Let me know if that fixed your case, I assume it does, but want to double check. |
…y#1813) Bumps [boto3](https://github.com/boto/boto3) from 1.24.38 to 1.24.39. - [Release notes](https://github.com/boto/boto3/releases) - [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst) - [Commits](boto/boto3@1.24.38...1.24.39) --- updated-dependencies: - dependency-name: boto3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Describe the bug
Queued Retry is capturing the context when enqueuing an item. If this context completes before the item is dequeued the spans are never delivered to the next processor/exporter. When queued_retry is early in the pipeline and receives the context from the receiver, its unable to ever dequeue items because the receiver context has already completed after the http response was sent to the client.
Steps to reproduce
Run 2 instances of the collector, one for receiving the spans via zipkin (http) and another for receiving via OTLP from the first instance.
I'm not sure if the type of receiver on instance 1 matters; the exporter type does though. To be effected by the bug, the exporter must check the context to see if it is cancelled/done. exporthelper/common.go is effected
What did you expect to see?
The span should be sent to the OTLP receiver.
What did you see instead?
Spans are never delivered to the OTLP receiver, they are stuck in the queued_retry processor forever.
The individual errors look like this
The queued_processor logs this
What version did you use?
go.opentelemetry.io/collector v0.9.1-0.20200911135115-e886a01ebe2e
What config did you use?
Zipkin Receiver (clients send here)
OTLP receiver (first otel collector sends here)
Environment
Reproduced on my laptop, but encountered the issue originally on Amazon Linux
OS: OSX 10.14
Compiler: go version go1.14.3 darwin/amd64
The text was updated successfully, but these errors were encountered: