You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below in Docker (using overlayfs) #9610
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
Create an new directory with .hhconfig and file.hack. Both can be empty.
Typecheck your code with hh_server --check .
Typecheck your code with hh_server . or hh_client
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
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?
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.
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
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.
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
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
Activity
mszabo-wikia commentedon May 28, 2025
A naïve search indicates the error is related to an unsupported socket operation, sostraceing yourhh_clientprocess might yield some more useful context on the exact operation / syscall that's failing here.Edit: probably it's
O_TMPFILEfrom b784cac by elimination. What filesystem were you using?lexidor commentedon May 29, 2025
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?
mszabo-wikia commentedon May 29, 2025
Yeah, from some more digging this seems to be because overlayfs (used by Docker and co for container filesystems) didn't support
O_TMPFILEuntil 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.
[-][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.1[/-][+][ Crash ] EOPNOTSUPP hh_client on linux kernel version 6.9 and below[/+]Daniel15 commentedon Jul 1, 2025
On Debian, you can install a newer kernel from backports. Currently, kernel
6.12.32is available inbookwork-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.
[-][ 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)[/+][-][ 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)[/+]lexidor commentedon Jul 1, 2025
I have changed the issue title.