Assert failure: brick_table[b] != 0 (original) (raw)
This happens when running this program:
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license.
using System; using System.Reflection; using System.Diagnostics;
namespace CoreLab { internal sealed class Finalizer { private char[] data; private static Finalizer resururector; private static int MAX = 10000; private int index;
public Finalizer(int i)
{
index = i;
data = new char[i];
}
~Finalizer()
{
// For every 10 objects, resurect 1 object
// this is cover the resurecting scenario of finalizer objects.
if(index % 10 == 0)
{
resururector = this;
}
}
public static void Main()
{
for(int i = 0; i < MAX; ++i)
{
new Finalizer(i * 16);
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
}}
with set DOTNET_gcServer=1, set DOTNET_GCDynamicAdaptationMode=1 and // #define STRESS_DYNAMIC_HEAP_COUNT uncommented in gcpriv.h.
Why this happen is unclear yet, but STRESS_DYNAMIC_HEAP_COUNT doesn't do anything except with messing around with some measurement variables, it is perceivable that this could manifest as a real bug in the product under certain situations.