为什么 .NET Wasi.Sdk 会引发垃圾回收?

问题描述 投票:0回答:1

使用 .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)
c# .net-core mono wasi wasmtime
1个回答
0
投票

问题已通过使用 .NET 8 中的 WASI SDK 集成(而不是该存储库)解决。

这都是实验性的,但看起来很有希望。

© www.soinside.com 2019 - 2024. All rights reserved.