Skip to content

Merge dev15.7.x to master#25858

Merged
jasonmalinowski merged 65 commits intomasterfrom
merges/dev15.7.x-to-master
Apr 2, 2018
Merged

Merge dev15.7.x to master#25858
jasonmalinowski merged 65 commits intomasterfrom
merges/dev15.7.x-to-master

Conversation

@dotnet-bot
Copy link
Copy Markdown
Collaborator

This is an automatically generated pull request from dev15.7.x into master.

git fetch --all
git checkout merges/dev15.7.x-to-master
git reset --hard upstream/master
git merge upstream/dev15.7.x
# Fix merge conflicts
git commit
git push merges/dev15.7.x-to-master --force

Once all conflicts are resolved and all the tests pass, you are free to merge the pull request.

sharwell and others added 30 commits March 23, 2018 12:23
This addresses a code review feedback point from #25558.
In the case the CLI was previously downloaded but not yet on `%PATH%` we
need to manually add it there. Not doing it leads to cases where MSBuild
can't find the proper SDK and as a result failing the build.

closes #25649
…or local functions, and exposed both to IOperation consumers.
The static constructor of SQLitePersistentStorage would throw an
exception, which would then get logged by the exception logger.

This changes the following logic:

* The database used to be deleted if e_sqlite was not found.
* The sqlite persistent storage is not used if e_sqlite is not found.
* The database ownership lock is released if any exceptions happen
while trying to instantiate the storage.

Fixes #24042

Extra story:
There is a architectures of e_sqlite not existing for some platforms,
i.e. ARM64. Therefore, in MonoDevelop, it would throw a
TypeInitializationException on trying to initialize the SQLitePersistentStorage.

In this case, what would happen is:
* The persistent storage service would create the lock file.
* It would throw in the static constructor, without having passed
ownership
* Thus, the lock file is created by the service, not held by anyone
specifically
* The exception wasn't accounted for, so the storage file would be
deleted
* We now have a lock file present and no storage created
* Roslyn will keep trying to create the persistent storage on every
subsequent try, ending up in a performance issue caused by continuous
IO on trying to get ownership on the lock file, but it can't take it
because nobody released the old lock

Therefore, shortcircuiting and disabling persistent storage in case the
lib is not found is better.
sharwell and others added 5 commits March 30, 2018 18:03
Fix signing of swix project output
The implementations of ISuggestedAction use threading assertions instead of
automatic transition to the correct thread, placing the burden of correct
thread selection on the caller, TextViewWindow_InProc. This change switches
to the vs-threading approach for maintaining thread affinity, which has two
parts:

1. When entering thread-affinitized code, switch to the correct thread
2. Avoid using ConfigureAwait(false) to lose the required affinity

The entire file relies on the default behavior of ConfigureAwait, which is
the normal coding practice in asynchronous code following vs-threading
patterns.
Make escape analysis over unexpected nodes to return conservative results
@dotnet-bot dotnet-bot requested review from a team as code owners March 31, 2018 03:06
sharwell and others added 14 commits March 31, 2018 09:27
Further work to stabilize the integration test interop layer
The getter is 'Enabled' and the setter is 'SetEnabled_OnlyUseExportProviderAttributeCanCall'.
This change ensures that all work added to the work queue after disconnection is
immediately cancelled.
While it doesn't make sense to still be requesting foreground actions after
cancellation is requested, tracking down all callers of
IForegroundNotificationService to ensure the proper checks are in place can be
tedious. This change treats IForegroundNotificationService as the gatekeeper
for scheduling asynchronous operations, and proactively cancels operations if
requested before adding them to the work queue.
Implements targets that calculate PathMap from SourceRoots and provide extension point for Source Link generator
Copy link
Copy Markdown
Contributor

@sharwell sharwell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently investigating a possible integration test hang introduced in the merge.

@sharwell sharwell force-pushed the merges/dev15.7.x-to-master branch from d6a0d89 to 98d68f9 Compare April 2, 2018 19:48
@sharwell
Copy link
Copy Markdown
Contributor

sharwell commented Apr 2, 2018

@jasonmalinowski We can either wait for #25892, or move his forward and catch it in the next update

@jasonmalinowski
Copy link
Copy Markdown
Member

@sharwell Unless we believe there is new flakiness due to this merge, we shouldn't block these on flakiness.

@sharwell
Copy link
Copy Markdown
Contributor

sharwell commented Apr 2, 2018

@jasonmalinowski This change fixes a bunch of flakiness but introduces the cleanup timeout flakiness. Unless master has been reliable recently this is probably a net win even without the referenced PR.

@jasonmalinowski jasonmalinowski merged commit 62bb55c into master Apr 2, 2018
@jasonmalinowski jasonmalinowski deleted the merges/dev15.7.x-to-master branch April 2, 2018 22:07
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.

10 participants