-
Notifications
You must be signed in to change notification settings - Fork 17
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
sendSegment is not thread-safe #44
Comments
@Shikugawa Do we open multiple threads for sending the segment? |
It won't be a problem on Envoy integration so I ignored this problem although I already know about it. But when we use it as SDK, It will be a critical problem. This problem is not directly related with Envoy integration. So I will submit a patch for 0.2.0. |
@liberize After all we don't have to allow sharing tracer between threads because it should be lock-free. Have you considered this to have per thread? |
@Shikugawa Tracer as per thread is fine, if it is designed in this way, but notice, the sender and grpc channel should be shared across threads, typically using a memory queue to buffer. |
I have the same problem. this problem occur in my test demo. demo has only one thread. #include "cpp2sky/propagation.h" void DoTest(int num){
} int main() { the cpp2sky branch is main. |
sendSegment is not thread-safe because
GrpcAsyncSegmentReporterStream::clearPendingMessages
is notwhich causes SIGABRT with
proto_buffer_writer.h:65 assertion failed: !byte_buffer->Valid()
The text was updated successfully, but these errors were encountered: