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

Regression in nuget >=2.7.1: Execution engine crash or tests hang #380

Closed
blumu opened this issue Aug 26, 2017 · 5 comments
Closed

Regression in nuget >=2.7.1: Execution engine crash or tests hang #380

blumu opened this issue Aug 26, 2017 · 5 comments
Labels

Comments

@blumu
Copy link

blumu commented Aug 26, 2017

Upgrading FSharpLu.Tests from FsCheck 2.4.0 to >=2.7.1 causes some tests to fail or timeout.
After bisecting the history of nuget packages I could determine that the regression was introduced in FsCheck 2.7.1 (It does not repro on FsCheck <=2.7.0)

Repro

1 - Get the repo at https://github.com/microsoft/fsharplu
2 - Build and run the test from VS 2017. Observe that all tests pass
3 - Upgrade the FsCheck nuget to 2.8.0
4 - Rebuild and run the test.
5 - Observe that the test execution engine fails with the following error

[8/26/2017 12:49:29 PM Informational] ------ Run test started ------
[8/26/2017 12:50:46 PM Error] The active Test Run was aborted because the execution process exited unexpectedly. The test execution process crashed while running the tests. To investigate further, open file:///C:/Users/wiblum/AppData/Local/CrashDumps/vstest.executionengine.x86.exe.11708.dmp file in Visual Studio and choose "Debug in mixed mode".

6 - The behavior varies by version. For instance with version 2.7.1 the execution engine does not crash but 4 of the 19 unit tests hang (on 2.7.0 they all pass in a few seconds).

blumu added a commit to microsoft/fsharplu that referenced this issue Aug 26, 2017
Downgrade to target .net framework net461
blumu added a commit to microsoft/fsharplu that referenced this issue Aug 26, 2017
Downgrade to target .net framework net461
blumu added a commit to microsoft/fsharplu that referenced this issue Aug 26, 2017
Target .net framework net452 and net461
@kurtschelfthout
Copy link
Member

kurtschelfthout commented Aug 27, 2017

Probably because of a change to recursive type generation in 2.7.1: 923f9d3.

Are you generating record and/or union types that are recursive? If so, can you give me one or more examples of such types for which it fails?

@blumu
Copy link
Author

blumu commented Aug 28, 2017

Yes, the following types are used in those tests, which include recursive records and union types:

type WithFields = SomeField of int * int
type SimpleDu = Foo | FooBar | Bar
type ComplexDu = ComplexDu of WithFields | SimpleDU | AString of string
type 'a RecursiveList = RecListLeaf of 'a | RecListCons of 'a RecursiveList
type OptionOfBase = int option
type OptionOfDu = SimpleDu option
type Color = Red | Blue
type Shape = Circle of int * int | Rectangle
type 'a Tree = Leaf of 'a | Node of 'a Tree * 'a Tree
type 'a Test = Case1 | Case2 of int | Case3 of int * string * 'a
type MapType = Map<string,Color>
type 'a NestedOptions = 'a option option option option

type 'a Wrapper = { WrappedField : 'a }
type NestedStructure = { subField : int }
type NestedOptionStructure = { field : NestedStructure option }

See source file at https://github.com/Microsoft/fsharplu/blob/master/FSharpLu.Tests/JsonTests.fs

blumu added a commit to microsoft/fsharplu that referenced this issue Aug 28, 2017
Target .net framework net452 and net461
blumu added a commit to microsoft/fsharplu that referenced this issue Aug 28, 2017
FSharpLu.Json targets NETStandard2.0 net452 and net461
FSharpLu targets .net framework net452 and net461
Merge nuspec files into project files
Build with dotnet
Downgrade FsCheck to 2.7.0 - See fscheck/FsCheck#380
Adapt nuget packing scripts to dotnet
Specify package version as parameter to packnuget.ps1
AssemblyVersion info now set from packnuget.ps1
Add XML doc to nuget
@kurtschelfthout
Copy link
Member

I think I have this fixed, re-opening because not released yet, but hopefully later today. Some housekeeping I want to take a look at first.

blumu added a commit to microsoft/fsharplu that referenced this issue Aug 28, 2017
FSharpLu.Json targets NETStandard2.0 net452 and net461
FSharpLu targets .net framework net452 and net461
Merge nuspec files into project files
Build with dotnet
Downgrade FsCheck to 2.7.0 - See fscheck/FsCheck#380
Adapt nuget packing scripts to dotnet
Specify package version as parameter to packnuget.ps1
AssemblyVersion info now set from packnuget.ps1
Add XML doc to nuget
@kurtschelfthout
Copy link
Member

Released in 2.9.2. Give it a go and re-open if not fixed. Thanks!

@blumu
Copy link
Author

blumu commented Aug 28, 2017

I confirm that 2.9.2 fixes it. Thanks @kurtschelfthout for the quick fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants