Skip to content
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

Decouple DS debug adapter tracker for the python tracker #3102

Closed
karthiknadig opened this issue Sep 12, 2019 · 4 comments
Closed

Decouple DS debug adapter tracker for the python tracker #3102

karthiknadig opened this issue Sep 12, 2019 · 4 comments
Assignees

Comments

@karthiknadig
Copy link
Member

VSCode allows one DebugAdapterTracker per language. Currently DS registers an debug adapter tracker named debugLocationTracker. This tracker run is the non-DS scenarios and is currently designed to be a singleton instance.

DebugAdapterTracker should be created for each debug session since there can be multiple debug sessions. The DS debugLocationTracker overwrites the debug session field in it every time a new session is created. This is creates issues when tracking multi process scenarios where there can be multiple debug sessions.

We need a common tracker that can handle singleton instances as needed by DS and per session instances as needed by debug session telemetry

@rchiodo
Copy link
Contributor

rchiodo commented Sep 19, 2019

@karthiknadig is this breaking multi process scenarios now?

@karthiknadig
Copy link
Member Author

Yes.

  1. For extension, it results in telemetry not being accurate in multi process scenarios.

  2. For DataScience, this is a problem when multiproc or multiple threads are used. Suppose you have a debug session running. If the code that user is currently debugging spawns another process. A new concurrent debug session will start, now when a breakpoint, exception, is hit. The code inside DebugLocationTracker.getStackTrace may not get the right stack. Since the same tracker is used. That code is currently broken for multi-thread case as well, since the actual location might be different for each thread.

@greazer
Copy link
Member

greazer commented Sep 20, 2019

Validate that multiproc debugging works for regular python AND we still support debugging in the interactive window.

The rest we can do later.

@rchiodo rchiodo self-assigned this Sep 24, 2019
@IanMatthewHuff IanMatthewHuff self-assigned this Sep 30, 2019
@IanMatthewHuff
Copy link
Member

Validated. Did a quick check to see if the debug location moved to the correct location while debugging some cells with function calls.

@lock lock bot locked as resolved and limited conversation to collaborators Oct 7, 2019
@microsoft microsoft unlocked this conversation Nov 14, 2020
@DonJayamanne DonJayamanne transferred this issue from microsoft/vscode-python Nov 14, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants