kezhenxu94 commented on a change in pull request #125:
URL: https://github.com/apache/skywalking-python/pull/125#discussion_r657115742



##########
File path: skywalking/agent/__init__.py
##########
@@ -65,14 +76,40 @@ def __init():
         __protocol = KafkaProtocol()
 
     plugins.install()
+    __init_threading()
 
 
 def __fini():
     __protocol.report(__queue, False)
     __queue.join()
+    __finished.set()
+
+
+def __fork_before():
+    if config.protocol != 'http':
+        logger.warning('fork() not currently supported with %s protocol' % 
config.protocol)

Review comment:
       ```shell
   pwd
   # /Users/kezhenxu94/workspace/skywalking-python
   
   g rev-parse HEAD
   # 6002ccc5e7463be8960304c30ecae55753f001dc
   
   make install > /dev/null 2>&1
   cat <<EOF > test.py
   import multiprocessing as mp
   import time
   
   from skywalking.trace.context import get_context
   from skywalking import agent, config
   
   config.init(collector='127.0.0.1:11800', service='your awesome service')
   agent.start()
   
   def foo():
       with get_context().new_local_span('child before error'):
           pass
   
       time.sleep(2)  # this needed to flush send because python doesn't run 
atexit handlers on exit in forked children
   
       # import atexit
       # atexit._run_exitfuncs()
   
   if __name__ == '__main__':
       p = mp.Process(target = foo, args = ())
   
       with get_context().new_local_span('parent before start'):
           pass
   
       p.start()
   
       time.sleep(1)
   
       with get_context().new_local_span('parent after start'):
           pass
   
       p.join()
   
       with get_context().new_local_span('parent after join'):
           pass
   
       time.sleep(5)
   EOF
   
   docker run -it --rm -p 11800:11800 -p 12800:12800 -d 
apache/skywalking-oap-server:8.6.0-es6
   # 64fb2bf0e8b8030c69058d79c114969ab46207fe9391913cc91080528f510005
   
   # Start to test
   # Generate traffic
   python3 test.py
   # skywalking [MainThread] [WARNING] failed to install plugin sw_aiohttp
   # skywalking [MainThread] [WARNING] failed to install plugin sw_django
   # skywalking [MainThread] [WARNING] failed to install plugin sw_elasticsearch
   # skywalking [MainThread] [WARNING] failed to install plugin sw_flask
   # skywalking [MainThread] [WARNING] failed to install plugin sw_kafka
   # skywalking [MainThread] [WARNING] failed to install plugin sw_psycopg2
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymongo
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymysql
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pyramid
   # skywalking [MainThread] [WARNING] failed to install plugin sw_rabbitmq
   # skywalking [MainThread] [WARNING] failed to install plugin sw_redis
   # skywalking [MainThread] [WARNING] failed to install plugin sw_requests
   # skywalking [MainThread] [WARNING] failed to install plugin sw_sanic
   # skywalking [MainThread] [WARNING] failed to install plugin sw_tornado
   # skywalking [MainThread] [WARNING] failed to install plugin sw_urllib3
   # skywalking [MainThread] [WARNING] failed to install plugin sw_aiohttp
   # skywalking [MainThread] [WARNING] failed to install plugin sw_django
   # skywalking [MainThread] [WARNING] failed to install plugin sw_elasticsearch
   # skywalking [MainThread] [WARNING] failed to install plugin sw_flask
   # skywalking [MainThread] [WARNING] failed to install plugin sw_kafka
   # skywalking [MainThread] [WARNING] failed to install plugin sw_psycopg2
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymongo
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymysql
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pyramid
   # skywalking [MainThread] [WARNING] failed to install plugin sw_rabbitmq
   # skywalking [MainThread] [WARNING] failed to install plugin sw_redis
   # skywalking [MainThread] [WARNING] failed to install plugin sw_requests
   # skywalking [MainThread] [WARNING] failed to install plugin sw_sanic
   # skywalking [MainThread] [WARNING] failed to install plugin sw_tornado
   # skywalking [MainThread] [WARNING] failed to install plugin sw_urllib3
   # Query and see the span number
   
   curl -s 'http://localhost:12800/graphql' \
   -X 'POST' \
   -H 'Content-Type: application/json;charset=utf-8' \
   --data-binary '{"query":"query queryTraces($condition: TraceQueryCondition) 
{\n  data: queryBasicTraces(condition: $condition) { traces { endpointNames } 
total }}","variables":{"condition":{"queryDuration":{"start":"2021-06-23 
131309","end":"2021-06-23 
232809","step":"SECOND"},"traceState":"ALL","paging":{"pageNum":1,"pageSize":15,"needTotal":true},"queryOrder":"BY_START_TIME","tags":[]}}}'
 | jq '.data.data.total'
   
   # 4 <================== 
   
   python3 test.py
   # skywalking [MainThread] [WARNING] failed to install plugin sw_aiohttp
   # skywalking [MainThread] [WARNING] failed to install plugin sw_django
   # skywalking [MainThread] [WARNING] failed to install plugin sw_elasticsearch
   # skywalking [MainThread] [WARNING] failed to install plugin sw_flask
   # skywalking [MainThread] [WARNING] failed to install plugin sw_kafka
   # skywalking [MainThread] [WARNING] failed to install plugin sw_psycopg2
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymongo
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymysql
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pyramid
   # skywalking [MainThread] [WARNING] failed to install plugin sw_rabbitmq
   # skywalking [MainThread] [WARNING] failed to install plugin sw_redis
   # skywalking [MainThread] [WARNING] failed to install plugin sw_requests
   # skywalking [MainThread] [WARNING] failed to install plugin sw_sanic
   # skywalking [MainThread] [WARNING] failed to install plugin sw_tornado
   # skywalking [MainThread] [WARNING] failed to install plugin sw_urllib3
   # skywalking [MainThread] [WARNING] failed to install plugin sw_aiohttp
   # skywalking [MainThread] [WARNING] failed to install plugin sw_django
   # skywalking [MainThread] [WARNING] failed to install plugin sw_elasticsearch
   # skywalking [MainThread] [WARNING] failed to install plugin sw_flask
   # skywalking [MainThread] [WARNING] failed to install plugin sw_kafka
   # skywalking [MainThread] [WARNING] failed to install plugin sw_psycopg2
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymongo
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pymysql
   # skywalking [MainThread] [WARNING] failed to install plugin sw_pyramid
   # skywalking [MainThread] [WARNING] failed to install plugin sw_rabbitmq
   # skywalking [MainThread] [WARNING] failed to install plugin sw_redis
   # skywalking [MainThread] [WARNING] failed to install plugin sw_requests
   # skywalking [MainThread] [WARNING] failed to install plugin sw_sanic
   # skywalking [MainThread] [WARNING] failed to install plugin sw_tornado
   # skywalking [MainThread] [WARNING] failed to install plugin sw_urllib3
   
   # Query and see the span number
   curl -s 'http://localhost:12800/graphql' \
   -X 'POST' \
   -H 'Content-Type: application/json;charset=utf-8' \
   --data-binary '{"query":"query queryTraces($condition: TraceQueryCondition) 
{\n  data: queryBasicTraces(condition: $condition) { traces { endpointNames } 
total }}","variables":{"condition":{"queryDuration":{"start":"2021-06-23 
131309","end":"2021-06-23 
232809","step":"SECOND"},"traceState":"ALL","paging":{"pageNum":1,"pageSize":15,"needTotal":true},"queryOrder":"BY_START_TIME","tags":[]}}}'
 | jq '.data.data.total'
   
   # 8 <===============
   ```




-- 
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.

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


Reply via email to