Skip to content

Asynchronously verified breakpoints are not always marked as "verified" within the UI #86749

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

Closed
connor4312 opened this issue Dec 11, 2019 · 9 comments
Assignees
Labels
bug Issue identified by VS Code Team member as probable bug debug Debug viewlet, configurations, breakpoints, adapter issues *not-reproducible Issue cannot be reproduced by VS Code Team member as described verified Verification succeeded
Milestone

Comments

@connor4312
Copy link
Member

Observed by @testforstephen in #83743 (comment) and myself in microsoft/vscode-js-debug#144 -- the latter has steps to reproduce the issue.

What I'm seeing is that:

  1. The 'stubbed' parent debug session gets a setBreakpoints request. It returns unverified BP (and never verifies them).
  2. The child debug session gets a setBreakpoints request. It also initially returns the BPs as unverified,
  3. then a few milliseconds later (once we get confirmation from CDP) the child verifies them.

I think the correct behavior is for the BP to show as verified if any debug session verifies them, and this usually works. So I suspect there's some timing issue in vs code itself here.

@connor4312 connor4312 added the debug Debug viewlet, configurations, breakpoints, adapter issues label Dec 11, 2019
@isidorn isidorn added this to the December/January 2020 milestone Dec 11, 2019
@weinand weinand added the bug Issue identified by VS Code Team member as probable bug label Dec 12, 2019
@isidorn
Copy link
Contributor

isidorn commented Dec 23, 2019

@connor4312 this should not happen. Our approach is to show the breakpoint as verified if at least one session verified it.
Can you please put a breakpoint here. And here
Point being the data should be the data of the sub session which verified it, not of the parent session.

How does the child session verify the breakpoint, does it send a breakpoint changed event?
I am having issues running the dev container for the node sample, thus I am unable to repro this issue atm.

@connor4312
Copy link
Member Author

@isidorn it looks like those source references don't exist any more, could you update them?

The child session does send a changed event. If you try to reproduce it, note that in the most recent version of PWA we made a change to work around this issue--we try to resolve the BP in the initial setBreakpoints response--you'll want to check out cd910d020466b089f920ea50c8ba0f6168bab278 and run gulp package to get a vsix where the bug is present. (Once the bug is fixed we'll revert our workaround to cut down on complexity)

@isidorn
Copy link
Contributor

isidorn commented Jan 20, 2020

@connor4312 Sorry this somehow slipped through my radar.
Here are new code pointers:

const verifiedData = distinct(allData.filter(d => d.verified), d => `${d.line}:${d.column}`);

The data object is session specific data for a breakpoint. Point is we should figure out why the breakpoint thinks it is not verified and from what session does it read the data.

@isidorn isidorn modified the milestones: January 2020, On Deck Jan 22, 2020
@weinand weinand modified the milestones: On Deck, February 2020 Feb 4, 2020
@isidorn
Copy link
Contributor

isidorn commented Feb 7, 2020

@connor4312 do you have some nice steps to reproduce this without having a container? Is it possible to reproduce this locally? Did the code pointers I provided help?

@isidorn
Copy link
Contributor

isidorn commented Feb 11, 2020

@connor4312 friendly ping for my previous question.

@connor4312
Copy link
Member Author

Apologies, will check this out tomorrow morning!

@isidorn
Copy link
Contributor

isidorn commented Feb 12, 2020

No problem and no hurries. Thanks

@connor4312
Copy link
Member Author

I actually cannot reproduce this on the latest insiders, though I can on an old 1.41 install I had lying around on a VM. Maybe the ordering PR fixed this?

Closing unless we see it happening again.

@connor4312 connor4312 added verified Verification succeeded *not-reproducible Issue cannot be reproduced by VS Code Team member as described and removed verified Verification succeeded labels Feb 12, 2020
@isidorn
Copy link
Contributor

isidorn commented Feb 13, 2020

Ok, thanks for looking into this!

@connor4312 connor4312 added the verified Verification succeeded label Feb 27, 2020
@github-actions github-actions bot locked and limited conversation to collaborators Mar 28, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Issue identified by VS Code Team member as probable bug debug Debug viewlet, configurations, breakpoints, adapter issues *not-reproducible Issue cannot be reproduced by VS Code Team member as described verified Verification succeeded
Projects
None yet
Development

No branches or pull requests

3 participants