Skip to content

[Bug] Python agent’s @runnable does not behave as expected #11605

@xlq20080808

Description

@xlq20080808

Search before asking

  • I had searched in the issues and found no similar issues.

Apache SkyWalking Component

Python Agent (apache/skywalking-python)

What happened

python version : 3.11.4
python agent : v1.0.1
flask version: 2.3.0

demo
image

cross threads are not in one trace
image

What you expected to happen

Cross threads in one trace
As shown below
image

How to reproduce

@app.route("/")
def hello():
    thread = threading.Thread(target=post)
    thread.start()
    return "ok"

@runnable(op="/post")
def post():
    return "post ok"

Anything else

1、 when the service is started, it will try to obtain a snapshot before making method calls. The behavior is expected for an interpreted language like python.
image
But when the method is actually executed, an None snapshot will cause the trace to interrupt.
image
2、 After checking the test cases, the writing method in the picture below can behave as expected.
Each method call triggers snapshot = get_context().capture()
image
But we cannot require users to write this way

Are you willing to submit a pull request to fix on your own?

  • Yes I am willing to submit a pull request on my own!

Code of Conduct

Metadata

Metadata

Labels

bugSomething isn't working and you are sure it's a bug!pluginPlugin for agent or collector. Be used to extend the capabilities of default implementor.pythonPython agent related

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions