Skip to content

Go 1.24 breaks runc exec #4602

@kolyshkin

Description

@kolyshkin

Description

I opened #4598 to check if runc works with Go 1.24 (currently using go1.24rc2) and found out that runc exec is badly broken.

The cause is allegedly a bug in the kernel, which is reported in https://lore.kernel.org/linux-fsdevel/20250122020850.2175427-1-kolyshkin@gmail.com/T/#u

I've also reported a Go bug to golang/go#71375

We can work around it by reimplementing io.Copy but first let's see what kernel and Go developers have to say.

Steps to reproduce the issue

See reproducers in the links above. You can also compile runc with Go 1.24 and run runc exec in the foreground.

Describe the results you received and expected

See above links.

What version of runc are you using?

I belive that any and all versions of runc are affected, when using Go 1.24rc2 (or rc1). The code introducing the use of io.Copy to copy from os.Stdin to a process' stdin is introduced in the very first runc commit 9fac183 aka "Initial commit of runc binary".

Host OS information

No response

Host kernel information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions