dotnet / dotnet/msbuild

MacOS: infinite project evaluation

Open
#3,938 0 comments 3 reactions 0 assignees View on GitHub
symlink triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

### Steps to reproduce

Take Mac OS.
I have written a test in `/msbuild/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs`:

```xml
///
/// Don't try to collect all items across the file system
///
[Fact]
public void EvaluateWildcardsFromRoot()
{
string content = ObjectModelHelpers.CleanupFileContents(@"




");
Project project = new Project(XmlReader.Create(new StringReader(content)));
}
```

If I run this simple test it will try to expand **all hard disk** and it will take **LOTS** of time.
Have no idea how to fix it in a right way, but I think we should not
* try to expand the drive root
* try to expand paths starts with an empty property.

Real world example:
https://github.com/Microsoft/python-language-server/blob/master/src/LanguageServer/Impl/Microsoft.Python.LanguageServer.csproj
```xml
...


$(AnalysisReference)/Microsoft.Python.Analysis.Engine.dll


PreserveNewest


...
```

p.s. Build from command line works because MsBuild does not use `Project` objects, only `ProjectInstance`.

### Expected behavior

Evaluation works

### Actual behavior

Evaluation stucks. In case of recursive symlinks forever...

### Environment data
MsBuild version: master 1e8f32f8 2018-11-16 17:38
OS info: macOS

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.