microsoft / coyote

Coyote is a library and tool for testing concurrent C# code and deterministically reproducing bugs.
https://microsoft.github.io/coyote/
Other
1.49k stars 77 forks source link

"Object reference not set to an instance of an object" when running the rewriter. #506

Open redknightlois opened 4 months ago

redknightlois commented 4 months ago

I was tasked into analyze if Coyote could serve our purposes for testing multithreaded quite complex code. However, I started by building a simple scenario to test where I can actually induce an error but could not pass the rewrite step.

1>Target CopyFilesToOutputDirectory:
1>  ConcurrencyTests -> S:\Src\ravendb-60-git\test\ConcurrencyTests\bin\Debug\net8.0\ConcurrencyTests.dll
1>Target CoyoteRewrite:
1>  Microsoft (R) Coyote version 1.7.11.0 for .NET 8.0.6
1>  Copyright (C) Microsoft Corporation. All rights reserved.
1>
1>  . Rewriting the assemblies specified in S:\Src\ravendb-60-git\test\ConcurrencyTests\bin\Debug\net8.0.
1>  ... Rewriting the 'Sparrow.dll' assembly (Sparrow, Version=6.1.0.0, Culture=neutral, PublicKeyToken=37f41c7f99471593)
1>  Object reference not set to an instance of an object.
1>  S:\Src\ravendb-60-git\test\ConcurrencyTests\ConcurrencyTests.csproj(51,5): error MSB3073: The command "coyote rewrite coyote.json" exited with code 1.
1>Done building target "CoyoteRewrite" in project "ConcurrencyTests.csproj" -- FAILED.
1>
1>Done building project "ConcurrencyTests.csproj" -- FAILED.

Repro

Build in debug the ConcurrencyTests project from the following branch:

https://github.com/redknightlois/ravendb/tree/coyote