tom-pytel opened a new pull request #138:
URL: https://github.com/apache/skywalking-python/pull/138


   Discovered this issue while using grpc_proxy in nginx, doesn't seem to 
happen when connecting directly to grpc server. The presence of the 
`connected()` protocol method could lead to a deadlock where grpc was 
disconnected and because of this no other calls to it would be made to 
reconnect. This is because both the heartbeat and creation of `SpanContext()`s 
instead of `NoopContext()`s (which would lead to a `report()`) depended on 
`connected()` being True.
   
   * For this reason removed the `connected()` method entirely since it doesn't 
even apply to the two other protocols - http and kafka.
   
   * Set `__finished.wait(0)` in the report thread instead of blocking for 3 or 
30 seconds because this could be detrimental in high throughput scenarios. Now 
the only report thread blocking that happens is in the report generators of the 
various protocols waiting on the queue.
   
   * Also wrapped the various threaded protocol calls in try / except in order 
to prevent unexpected transient exceptions from killing the threads.
   
   * Added SW_AGENT_MAX_BUFFER_SIZE which sets the maximum queue length like in 
the Node agent.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to