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

fix bad merge of LanguageService.fs which was causing issues with the editor keystrokes #3442

Merged
merged 1 commit into from
Aug 15, 2017
Merged

fix bad merge of LanguageService.fs which was causing issues with the editor keystrokes #3442

merged 1 commit into from
Aug 15, 2017

Conversation

brettfo
Copy link
Member

@brettfo brettfo commented Aug 15, 2017

No description provided.

@brettfo brettfo merged commit f535de6 into dotnet:master Aug 15, 2017
@brettfo brettfo deleted the fix-editor-keys-merge branch August 15, 2017 23:00
@dsyme
Copy link
Contributor

dsyme commented Aug 16, 2017

@brettfo I need to understand this more.

  • I thought @KevinRansom's solution to this issue was to lock in some concurrent access situation?

  • Could you link to the PR that made the shown change which is being reverted? I believe it was an intentional change correcting a performance problem and we should assess the impact of reverting this change

  • Could we also asses why this change had such a massive impact on basic editor functionality? What went wrong? Were exceptions being raised? Could we protect in some way against such a major problem occurring in the future?

@dsyme
Copy link
Contributor

dsyme commented Aug 16, 2017

@brettfo Also, are you sure this was a "bad merge"? thanks

@forki
Copy link
Contributor

forki commented Aug 16, 2017 via email

@cartermp
Copy link
Contributor

@KevinRansom's initial solution was to lock, but it turns out that the code he was locking wasn't even necessary. Project tracking is already done by the underlying project system. The change in #3238 introduced redundant project tracking that seems to have overwritten the existing project tracking. This was resulting in those keys sending what amounted to garbage to the Visual Studio key command handler. The change represented in #3419 simply rids us of that code because it wasn't needed in the first place.

Our plan at release was to merge vs2017-rtm (with #3419) back into master, kick off a build, and get the nightly releases of VS 2017 with this fix. That was #3434. However, that merge was bad insofar as it didn't have the #3419 change, and so the nightlies we produced did not have the fix. This PR brings those changes in, and the nightlies that are a result of the build we kicked off from this have the full fix.

@dsyme
Copy link
Contributor

dsyme commented Aug 16, 2017

@cartermp @brettfo Looking at the changed code, I don't see how this PR is specifically related to #3419 or #3434.

This PR seems to be reapplying part of #3387 which was a potential fix for #3033 but had not been properly tested so was reverted by @KevinRansom in master.

I do see that the code in master was busted before this fix since it didn't have any recursive call to setup, e.g. these lines.

Anyway, as things stand I'm going to assume master fixes the arrow key problem, and in addition we seem to now have #3387 in master. That might be a good change, and it might fix #3033 (which would be great), but we should validate.

@cartermp
Copy link
Contributor

#3434 did not bring in all the changes from #3419. This PR does. We haven't validated #3033 yet.

@dsyme
Copy link
Contributor

dsyme commented Aug 16, 2017

#3434 did not bring in all the changes from #3419. This PR does.

Nah, I still don't get it, sorry :) When I look at the changes made by this PR, they are not bringing in the changes from #3419. They are instead applying part of #3387 (which happened to be in master at the time #3419 was made, but was later reverted).

AFAICS the current state of master before this PR was kind of broken. After this PR #3387 has effectively been applied. That doesn't mean master is now broken - it might be great - it depends if #3387 is a good fix for #3033.

@KevinRansom
Copy link
Member

@dsyme, the concurrent fix was not the right solution. Project construction adds the tracker, and so adding it here is not necessary, and indeed causes the problem. The is project already added test should always succeed, except occasionally it didn't hence the lock.

This change changes the code to what is in currently vs2017-rtm which we know cures the keyboard problems, on new projects and multi-project solutions.

@dsyme
Copy link
Contributor

dsyme commented Aug 16, 2017

This change changes the code to what is in currently vs2017-rtm which we know cures the keyboard problems, on new projects and multi-project solutions.

I'm totally fine with this. I'm just pointing out that this means #3387 has effectively been applied in vs2017-rtm and master (i.e. should no longer be considered reverted), and we can now validate that it fixes #3033 as it was intended to do

@KevinRansom
Copy link
Member

@dsyme ... it was a forward thinking bug fix :-)

@cartermp
Copy link
Contributor

cartermp commented Aug 16, 2017

@dsyme I think it's best to just consider this merge as literally as possible. There was a previous merge that did not incorporate the changes to this file that were in the shipping branch (vs2017-rtm). Because nightlies are based on master, we needed to get those changes over. This PR completes that process.

Effective application of #3387 is coincidental in nature. If it turns out that #3033 is also fixed as a result of the effective application of #3387, then that's good. If it isn't, then we are at the same position we were when #3303 was created, but with the arrow/backspace/enter keys fixed.

@dsyme
Copy link
Contributor

dsyme commented Aug 17, 2017

@cartermp Yep, thanks :)

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.

6 participants