Skip to main content

POSIX Compatibility

JuiceFS verifies POSIX compatibility mainly through two test suites: pjdfstest and Linux Test Project (LTP). The POSIX behavior described below is consistent across Community Edition, Cloud Service, and Enterprise Edition.

pjdfstest

pjdfstest is a test suite focusing on POSIX system calls. JuiceFS has passed the latest 8,813 tests.

Note: disable trash when running pjdfstest

pjdfstest deletes files directly. If JuiceFS trash is enabled, behavior differs from the test expectation. Disable trash before running tests:

juicefs config <meta-url> --trash-days 0

POSIX semantics and supported behaviors

Besides what pjdfstest covers, JuiceFS provides:

  • Close-to-open consistency: once a file is written and closed, subsequent open/read can observe the latest data.
  • Atomic metadata operations: rename and other metadata operations are atomic (guaranteed by metadata engine transactions).
  • Unlinked open files remain accessible: within the same mount point, an opened file remains accessible after it is unlinked.
  • mmap support (validated with FSx).
  • fallocate with punch hole support.
  • Extended attributes (xattr).
  • BSD locks (flock).
  • POSIX record locks (fcntl): supports traditional (process-associated) record locks.

Record locks: traditional vs OFD locks

POSIX record locks include traditional locks (F_SETLK) and OFD locks (F_OFD_SETLK). Due to limitations in the Linux FUSE kernel module implementation, JuiceFS currently supports traditional record locks only. See fcntl(2) for details.

Linux Test Project (LTP)

LTP is a widely used test suite for validating Linux kernel and system call behavior. JuiceFS passes most filesystem-related tests. In historical LTP runs, a small number of cases were skipped or failed, typically due to:

  • SEEK_DATA / SEEK_HOLE expectations in lseek.
  • Certain open / openat behaviors required by specific cases.

Editions consistency

The POSIX compatibility described above is consistent across the Community Edition, Cloud Service, and Enterprise Edition.

Further reading

For the complete and most up-to-date details (including full test outputs and appendix), refer to the Community Edition documentation: https://juicefs.com/docs/community/posix_compatibility.