Skip to content

Conversation

@PapaPedro
Copy link
Contributor

@PapaPedro PapaPedro commented Apr 30, 2021

Whenever some python code is waiting for an item to arrive in a queue,
the current flame grpah will only show the function where the queue.get
is called, the rest of the stack is not showing. This is unfortunate
because we would need to remap those stacks into WAITING state.

This change adds another synthetic frame for this specific frame when
the source code at the end of the sampled stack has .get(block=True
This looks like it could trigger a lot of false positives but it will
only happen when this is the leaf of the stack so we would need this
code to call some native code that does not appear in the stack but
where we spend a lot of time.

Whenever some python code is waiting for an item to arrive in a queue,
the current flame grpah will only show the function where the queue.get
is called, the rest of the stack is not showing. This is unfortunate
because we would need to remap those stacks into WAITING state.

This change adds another synthetic frame for this specific frame when
the source code at the end of the sampled stack has `.get(block=True`
This looks like it could trigger a lot of false positives but it will
only happen when this is the leaf of the stack so we would need this
code to call some native code that does not appear in the stack but
where we spend a lot of time.
@mirelap-amazon mirelap-amazon merged commit 60ec179 into main Jun 18, 2021
@PapaPedro PapaPedro deleted the marieup-queue-synthetic-frame branch June 22, 2021 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants