使用 .NET WASI SDK 时,垃圾收集器似乎会抛出异常,无论是在后台运行还是显式调用时。
我在 Github 上提出了问题,但 Microsoft 没有回应(一年多以来还有另一个类似的问题)。
我的问题是,我的设置是否有问题?我所做的就是安装最新的 wasmtime,创建一个 .NET 8 控制台应用程序,添加最新的
dotnet-wasi-sdk
nuget 包并尝试运行下面的程序,然后发生错误。
有趣的是,它能够运行其他更复杂的代码,但在执行自己的垃圾回收时会崩溃。
我怀疑我存在设置/配置问题。有什么想法吗?
[wasm_trace_logger] * Assertion at /home/runner/work/dotnet-wasi-sdk/dotnet-wasi-sdk/modules/runtime/src/mono/mono/metadata/sgen-stw.c:77, condition `info->client_info.stack_start >= info->client_info.info.stack_start_limit && info->client_info.stack_start < info->client_info.info.stack_end' not met
https://github.com/HermanSchoenfeld/WasiSdkBug
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args) {
GC.Collect();
}
}
}
.NET 8, .NET 7
Wasi.Sdk 0.1.4-preview.10020 and 0.1.1
wasmtime-cli 19.0.2 (040ec9209 2024-04-11)
问题已通过使用 .NET 8 中的 WASI SDK 集成(而不是该存储库)解决。
这都是实验性的,但看起来很有希望。