Skip to content

After Docker image update to microsoft/dotnet:2.1-sdk. Receiving System.IO.IOException: Method not found: 'System.Memory`1<!0> #26120

@ahsonkhan

Description

@ahsonkhan

Copying issue from microsoft/dotnet#738

From @jdwilly2001:
The application was running last week, and now is failing. I am attempting to buidl the docker image with the same code that was confirmed running and now I cannot get the application to serve a basic healthcheck url. Are there any issues with the published 2.1-sdk image?

info: Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets[14]
Connection id "0HLDKUV7FGMOP" communication error.
System.IO.IOException: Method not found: 'System.Memory1<!0> System.Memory1.CreateFromPinnedArray(!0[], Int32, Int32)'. ---> System.MissingMethodException: Method not found: 'System.Memory1<!0> System.Memory1.CreateFromPinnedArray(!0[], Int32, Int32)'.
at System.Buffers.MemoryPoolBlock..ctor(SlabMemoryPool pool, MemoryPoolSlab slab, Int32 offset, Int32 length)
at System.Buffers.SlabMemoryPool.AllocateSlab()
at System.Buffers.SlabMemoryPool.Lease()
at System.IO.Pipelines.Pipe.AllocateWriteHeadUnsynchronized(Int32 sizeHint)
at System.IO.Pipelines.Pipe.GetMemory(Int32 sizeHint)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection.ProcessReceives()
at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal.SocketConnection.DoReceive()
--- End of inner exception stack trace ---

From @anandtpatel:
microsoft/dotnet 2.1-sdk image was working fine on Friday(May 4th). Started giving above error since yesterday(May 7).

cc @pakrym, @weshaggard, @ericstj, @natemcmaster, @dagood, @mmitche

I am not sure why MemoryPoolBlock is looking for Memory<T>.CreateFromPinnedArray. It was moved to MemoryMarshal quite a while ago, here:
src: https://github.com/dotnet/corefx/blob/release/2.1/src/Common/src/CoreLib/System/Runtime/InteropServices/MemoryMarshal.cs#L264
ref: https://github.com/dotnet/corefx/blob/release/2.1/src/System.Memory/ref/System.Memory.cs#L526

I checked the System.Memory package from MyGet (both RC and RTM versions have this method on MemoryMarshal).

MemoryPoolBlock is referencing the correct method:
https://github.com/aspnet/Common/blob/release/2.1/shared/Microsoft.Extensions.Buffers.Sources/MemoryPoolBlock.Release.cs#L30

The dependencies seem correct as well: https://github.com/aspnet/Universe/blob/release/2.1/build/dependencies.props#L18

I don't know how exactly aspnet and the dotnet sdk is built, but there might be a package mismatch somewhere up stack that could be causing this issue. Microsoft.NetCore.App version information would help.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions