This repository has been archived by the owner on Jul 1, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 232
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report
@@ Coverage Diff @@
## master #670 +/- ##
============================================
- Coverage 89.93% 89.46% -0.47%
+ Complexity 569 567 -2
============================================
Files 69 69
Lines 2086 2089 +3
Branches 266 267 +1
============================================
- Hits 1876 1869 -7
- Misses 129 137 +8
- Partials 81 83 +2
Continue to review full report at Codecov.
|
yhpark
force-pushed
the
span-size-fix
branch
from
November 30, 2019 09:01
4cdb2a1
to
5f51594
Compare
pavolloffay
reviewed
Dec 12, 2019
jaeger-thrift/src/test/java/io/jaegertracing/thrift/internal/senders/UdpSenderTest.java
Outdated
Show resolved
Hide resolved
jaeger-thrift/src/test/java/io/jaegertracing/thrift/internal/senders/UdpSenderTest.java
Show resolved
Hide resolved
Signed-off-by: Yeonghoon Park <me@yhpark.io>
yhpark
force-pushed
the
span-size-fix
branch
from
December 17, 2019 00:18
5f51594
to
ef2ec7d
Compare
yurishkuro
reviewed
Dec 22, 2019
jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSender.java
Outdated
Show resolved
Hide resolved
…ftSenderBase Signed-off-by: Yeonghoon Park <me@yhpark.io>
yhpark
commented
Jan 2, 2020
jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSender.java
Outdated
Show resolved
Hide resolved
jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSender.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Yeonghoon Park <me@yhpark.io>
yurishkuro
reviewed
Jan 15, 2020
jaeger-thrift/src/main/java/io/jaegertracing/thrift/internal/senders/ThriftSender.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Yeonghoon Park <me@yhpark.io>
yurishkuro
approved these changes
Jan 17, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you very much for your PR and patience!
result = sender.append(jaegerSpan); | ||
|
||
assertEquals(1, result); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice!
foxliu20
pushed a commit
to foxliu20/java-opentracing-jaeger-bundle
that referenced
this pull request
Jun 18, 2021
Jaeger < 1.2.0 has a critical bug which causes the client stop working. The problem has been fixed at 1.2.0 jaegertracing/jaeger-client-java#670
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Yeonghoon Park me@yhpark.io
Which problem is this PR solving?
Fixes #660. Currently the span size check only calculates the byte size of span, where it should also take the process size into account.
Consider a span with size less than
getMaxSpanBytes()
and greater thangetMaxSpanBytes() - processSize
. We cannot create a batch that fits UDP limit because we always have to send theProcess
. Still it passes the size check and corrupts write buffer in ThriftUdpTransport when flushed (which is another problem not dealt in this PR). Then the write buffer is always full with 65000 bytes in the buffer, never reinitialized, preventing all further spans from being sent.I think this is a very critical issue because it causes the client to stop sending any spans altogether, and we actually encountered this problem frequently in production. For now, a workaround is to set the
ThriftSenderBase.maxPacketSize
value to something like 64000 by injecting a customThriftSenderFactory
via ServiceLoader (seeSenderResolver.resolve()
).Process
without custom tags takes around 100 bytes, so using value less than 64800 would be okay.Short description of the changes
span size + Batch thrift overhead < 65000
(
spanSize > getMaxSpanBytes()
)process size + span size + Batch thrift overhead < 65000
(
(processSize + spanSize) > getMaxSpanBytes()
)