Skip to content

[Wasm] Profiled AOT fails on System.IO invocations #87856

@jeromelaban

Description

@jeromelaban

Description

Building an app with profiled AOT fails with RuntimeError: null function or function signature mismatch

Reproduction Steps

Build the following:

	public static class Program
	{
		static async Task Main(string[] args)
		{
			Directory.CreateDirectory("/tmp");
			await File.WriteAllTextAsync("/tmp/test.txt", "test");
			await File.ReadAllBytesAsync("/tmp/test.txt");
		}
	}

With the following profile aot.zip

Expected behavior

No runtime error.

Actual behavior

Uncaught (in promise) RuntimeError: null function or function signature mismatch
    at corlib_System_IO_File_WriteToFileAsync_string_System_IO_FileMode_string_System_Text_Encoding_System_Threading_CancellationToken (dotnet.native.wasm:0x381c5)
    at corlib_System_IO_File_WriteAllTextAsync_string_string_System_Text_Encoding_System_Threading_CancellationToken (dotnet.native.wasm:0x38048)
    at corlib_System_IO_File_WriteAllTextAsync_string_string_System_Threading_CancellationToken (dotnet.native.wasm:0x37f5b)
    at BugProfiledAOT20220620_Uno_Wasm_Sample_Program__Maind__0_MoveNext (dotnet.native.wasm:0xcd20)
    at corlib_System_Runtime_CompilerServices_AsyncMethodBuilderCore_Start_TStateMachine_REF_TStateMachine_REF_ (dotnet.native.wasm:0x2c689)
    at corlib_System_Runtime_CompilerServices_AsyncTaskMethodBuilder_Start_TStateMachine_REF_TStateMachine_REF_ (dotnet.native.wasm:0x2c8c0)
    at BugProfiledAOT20220620_Uno_Wasm_Sample_Program_Main_string__ (dotnet.native.wasm:0xca67)
    at aot_instances_aot_wrapper_gsharedvt_out_sig_obj_obj (dotnet.native.wasm:0x65f6d)
    at jit_call_cb (dotnet.native.wasm:0x913e8)
    at c7cbb3c6:0x56

Regression?

Yes, it was working in net7.0

Known Workarounds

No AOT profile, or interpreter-only builds work properly.

Configuration

3a76e98

Other information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions