Skip to content

Stack usage #19285

@tmds

Description

@tmds

I debugged a crash of vmr while compiling fsharp on Linux/s390x. The stack had overflown.

A reason for it to overflow is that s390x stack size is much smaller than what we have on x64/arm64, see dotnet/runtime#124368.

It's interesting to note that the stack was so huge, which is why I'm creating this issue.
Probably this is expected based on how the F# compiler works.

What determines how much stack size the F# compiler needs (for example, might it need more stack space when there are fewer cores)? Does it try to guard how much stack space is left? Have there been recent changes that might require it to need a larger stack? Or perhaps processing moved from the main thread (which would likely be 8MB on Linux) to ThreadPool (which would be 2MB with Mono)?

If the required stack size is known to be large, it may make sense to create a thread and specify the stack size explicitly so that a large stack is available.

cc @dotnet/fsharp @majocha

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions