Bmage's AOT demo crashes in Mono's interpreter at interp.c:2737

Open
#15,100 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
12/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Active
Tech stack
csharp, wasm
Domain
build-system

Research direction

Start with the assertion at mono/mini/interp/interp.c:2737 in the Mono runtime and with what bit aot-profile writes, comparing the profile from the 26 October develop run with the current one after #15053 and #15062. The issue does not say what to change, and the cause is still unknown. Done means the Bmage E2E (Chromium) suite passes with the profile produced by bit aot-profile.

Written by the indexing model from the issue text.

Description

The Bmage demo, published with AOT and the profile bit aot-profile writes for it, crashes in Mono's interpreter as soon as the editor runs:

[MONO] * Assertion at /__w/1/s/src/runtime/src/mono/mono/mini/interp/interp.c:2737, condition `<disabled>' not met
MONO_WASM: Assert failed: .NET runtime already exited with 1

CI Bmage E2E (Chromium) fails 50 of its 122 tests on it (run), on the branch of #15099, where bit aot-profile writes the profile again (11,425 methods run). A run with the generic instances over interfaces left out of the profile fails the same 50 (run).

On 26 October develop's run wrote a profile of 15,219 methods and failed 1 test of 116, without the crash (run). Since then #15053 and #15062 changed what bit aot-profile adds to a profile. The CD's bmage demo uses the same profile, so it would deploy a demo that crashes once #15099 lets its job through.

Dominant language
C#
Stars
1.4k
Forks
264
Avg merge
8h 58m
Merged PRs (30d)
579

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bitfoundation/bitplatform

All issues in bitfoundation/bitplatform

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.