Description
We get a NRE like this in a number of our Mac Catalyst (only, not macOS) unit tests:
NullReferenceException
at System.Numerics.Vector.get_IsHardwareAccelerated()
at System.SpanHelpers.Fill[T](T& refData, UIntPtr numElements, T value)
at System.Buffers.ProbabilisticMapState..ctor(ReadOnlySpan`1 values, Int32 maxInclusive)
at System.Buffers.ProbabilisticWithAsciiCharSearchValues`1..ctor(ReadOnlySpan`1 values, Int32 maxInclusive)
at System.Buffers.SearchValues.Create(ReadOnlySpan`1 values)
at System.Text.Json.JsonReaderHelper..cctor()
at System.Runtime.CompilerServices.InitHelpers.CallClassConstructor(Void* cctor, Void* instantiatingArg, Exception* pException)
Reproduction Steps
Important: use an x64 machine (this does not seem to repro on Rosetta).
git clone https://github.com/dotnet/macios --recurse-submodules
cd macios
git checkout darc-release/11.0.1xx-preview5-ac83f574-df9a-48c9-ab93-f3bcb3a825ba
git reset --hard 51283bed16305c25c2b6c19891d8e5a365e09c71
git cherry-pick f708cd61aa348284654db81c802b9362fbc54748
git cherry-pick 0e55db3f754412b770d9ba1c3e6d630ad56ae29a
git cherry-pick 58ead49e76836ff1462fabdd7a94cc4ab04c81fa
./configure --disable-all-platforms --enable-ios
make all -j8
make install -j8
cd tests/monotouch-test/dotnet/MacCatalyst
make clean build run-bare RID=maccatalyst-x64 RUN_ARGUMENTS='--test MonoTouchFixtures.CoreGraphics.PDFDocumentTest'
Note: it's possible to follow all the repro steps on any machine, and then finally copy the test app to an x64 machine to run it. The app is bin/Debug/net11.0-maccatalyst/maccatalyst-x64/monotouchtest.app - copy the entire directory and then run:
./monotouchtest.app/Contents/MacOS/monotouchtest --autoexit --autostart --test MonoTouchFixtures.CoreGraphics.PDFDocumentTest
Expected behavior
[...]
monotouchtest
MonoTouchFixtures
MonoTouchFixtures.CoreGraphics
MonoTouchFixtures.CoreGraphics.PDFDocumentTest
[PASS] DataProvider
[PASS] FromFile
[PASS] FromUrl
MonoTouchFixtures.CoreGraphics.PDFDocumentTest : 41.4037 ms
MonoTouchFixtures.CoreGraphics : 41.4638 ms
MonoTouchFixtures : 41.6845 ms
monotouchtest : 44.1212 ms
EmbeddedResources
EmbeddedResources : 0.0391 ms
bindings-test
bindings-test : 0.0014 ms
Tests run: 3 Passed: 3 Inconclusive: 0 Failed: 0 Ignored: 0
AutoRun (): completed test run on main thread
Exiting test run with success
Actual behavior
[...]
monotouchtest
MonoTouchFixtures
MonoTouchFixtures.CoreGraphics
MonoTouchFixtures.CoreGraphics.PDFDocumentTest
[FAIL] DataProvider : System.NullReferenceException : Object reference not set to an instance of an object.
at System.Numerics.Vector.get_IsHardwareAccelerated()
at System.SpanHelpers.Fill[T](T& refData, UIntPtr numElements, T value)
at System.String.Ctor(Char c, Int32 count)
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.Dump(StringBuilder sb, Int32 indentation, CGPDFDictionary dict) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 129
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.DumpPdf(CGPDFDocument doc) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 152
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.CheckTamarin(CGPDFDocument pdf) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 65
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.DataProvider() in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 24
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[FAIL] FromFile : System.NullReferenceException : Object reference not set to an instance of an object.
at System.Numerics.Vector.get_IsHardwareAccelerated()
at System.SpanHelpers.Fill[T](T& refData, UIntPtr numElements, T value)
at System.String.Ctor(Char c, Int32 count)
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.Dump(StringBuilder sb, Int32 indentation, CGPDFDictionary dict) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 129
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.DumpPdf(CGPDFDocument doc) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 152
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.CheckTamarin(CGPDFDocument pdf) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 65
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.FromFile() in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 32
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[FAIL] FromUrl : System.NullReferenceException : Object reference not set to an instance of an object.
at System.Numerics.Vector.get_IsHardwareAccelerated()
at System.SpanHelpers.Fill[T](T& refData, UIntPtr numElements, T value)
at System.String.Ctor(Char c, Int32 count)
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.Dump(StringBuilder sb, Int32 indentation, CGPDFDictionary dict) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 129
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.DumpPdf(CGPDFDocument doc) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 152
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.CheckTamarin(CGPDFDocument pdf) in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 65
at MonoTouchFixtures.CoreGraphics.PDFDocumentTest.FromUrl() in /Users/rolf/work/dotnet/macios/11.0.1xx/macios/tests/monotouch-test/CoreGraphics/PDFDocumentTest.cs:line 41
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
MonoTouchFixtures.CoreGraphics.PDFDocumentTest : 53.9463 ms
MonoTouchFixtures.CoreGraphics : 53.9706 ms
MonoTouchFixtures : 54.0773 ms
monotouchtest : 54.7475 ms
EmbeddedResources
EmbeddedResources : 0.0059 ms
bindings-test
bindings-test : 0.0015 ms
Tests run: 3 Passed: 0 Inconclusive: 0 Failed: 3 Ignored: 0
AutoRun (): completed test run on main thread
Exiting test run with code 1
Regression?
Yes
Known Workarounds
No response
Configuration
This started happening in the latest .NET 11 maestro bump:
Other information
Might be related to #128898.
Description
We get a NRE like this in a number of our Mac Catalyst (only, not macOS) unit tests:
Reproduction Steps
Important: use an x64 machine (this does not seem to repro on Rosetta).
Note: it's possible to follow all the repro steps on any machine, and then finally copy the test app to an x64 machine to run it. The app is
bin/Debug/net11.0-maccatalyst/maccatalyst-x64/monotouchtest.app- copy the entire directory and then run:Expected behavior
Actual behavior
Regression?
Yes
Known Workarounds
No response
Configuration
This started happening in the latest .NET 11 maestro bump:
Other information
Might be related to #128898.