Skip to content

[ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below in Docker (using overlayfs) #9610

Open

Description

@lexidor

Describe the bug
When running hh_client with a modern hhvm build on the 6.1 kernel (the default of Debian 12), an error is raised EOPNOTSUPP. This error is not raised on a 6.12 kernel.

Standalone code, or other way to reproduce the problem

Steps to reproduce the behavior:

  1. Compile your own hhvm and hh_client from this PR: Fix OSS build #9564
  2. Create an empty /etc/hh.conf file
  3. Create an new directory with .hhconfig and file.hack. Both can be empty.
  4. Typecheck your code with hh_server --check .
  5. Typecheck your code with hh_server . or hh_client
  6. This last step fails with the error described above.

Expected behavior

No errors!

Actual behavior

("Unix.Unix_error(Unix.EOPNOTSUPP, \"hh_open_tmpfile\", \"/tmp/hh_server\")")
Raised by primitive operation at Sys_utils.atomically_create_and_init_file in file "hack/src/utils/sys/sys_utils.ml", line 772, characters 11-71
Called from Server_progress.ErrorsWrite.new_empty_file.(fun) in file "hack/src/client_and_server/server_progress.ml", lines 446-453, characters 14-53

Environment

  • Operating system

'Debian 12 (Bookworm)'

  • Installation method

'built from source' 'running in docker'

  • HHVM Version

HipHop VM 6.79.0-dev (rel) (non-lowptr)
Compiler: heads/fix-oss-build-0-g03747d03a401005326a90060621b41bf88ef999c
Repo schema: 4e0f8e27bd2ef969b1c0606be3fec128f116cac8
hackc-ea9ee869cba86727ff515f59ac651db9dd90a203-6.79.0-dev

Activity

  1. mszabo-wikia commented on May 28, 2025

    @mszabo-wikia
    Contributor

    A naïve search indicates the error is related to an unsupported socket operation, so straceing your hh_client process might yield some more useful context on the exact operation / syscall that's failing here.

    Edit: probably it's O_TMPFILE from b784cac by elimination. What filesystem were you using?

  2. lexidor commented on May 29, 2025

    @lexidor
    ContributorAuthor

    Edit: probably it's O_TMPFILE from b784cac by elimination. What filesystem were you using?

    I didn't change the default, so ext4.

    I marked this issue as won't fix, because this looks like a missing (implicit) system requirement. Have I misjudged that?

  3. mszabo-wikia commented on May 29, 2025

    @mszabo-wikia
    Contributor

    Yeah, from some more digging this seems to be because overlayfs (used by Docker and co for container filesystems) didn't support O_TMPFILE until torvalds/linux@9a87907 / 6.10.x.

    In theory the code could have a fallback for this but I don't think it'd be worth doing, since support exists now and (AIUI) bind-mounting some local directory instead of using an in-container directory should be a usable workaround on older systems. Certainly good to have this noted in an issue though in case someone runs into it.

  4. changed the title [-][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.1[/-] [+][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below[/+] on May 29, 2025
  5. Daniel15 commented on Jul 1, 2025

    @Daniel15
    Member

    On Debian, you can install a newer kernel from backports. Currently, kernel 6.12.32 is available in bookwork-backports. It should also work fine if you run it directly on the system rather than using Docker.

    @lexidor It would be useful to change the title of this issue to say it's an issue with Docker/overlayfs specifically.

  6. changed the title [-][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below[/-] [+][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below in Docker (using overlays)[/+] on Jul 1, 2025
  7. changed the title [-][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below in Docker (using overlays)[/-] [+][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below in Docker (using overlayfs)[/+] on Jul 1, 2025
  8. lexidor commented on Jul 1, 2025

    @lexidor
    ContributorAuthor

    @lexidor It would be useful to change the title of this issue to say it's an issue with Docker/overlayfs specifically.

    I have changed the issue title.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions