Skip to content

Fix posix_setrlimit() rejecting POSIX_RLIMIT_INFINITY on Solaris - #24377

Open
jorgsowa wants to merge 1 commit into
php:PHP-8.5from
jorgsowa:fix-posix-setrlimit-rlim-infinity
Open

jorgsowa wants to merge 1 commit into
php:PHP-8.5from
jorgsowa:fix-posix-setrlimit-rlim-infinity

Conversation

@jorgsowa

Copy link
Copy Markdown
Contributor

GH-19281 made posix_setrlimit() throw a ValueError for limits below -1, on the assumption that -1 (RLIM_INFINITY on Linux) is the only valid negative value. Solaris defines RLIM_INFINITY as (rlim_t)-3, so the function now rejects PHP's own POSIX_RLIMIT_INFINITY constant. On Solaris, also accept RLIM_INFINITY. Other platforms keep the
existing check. The error message is kept the same (or maybe I should change the wording as well?)

This fixes ext/session/tests/session_write_failure_keeps_data.phpt in the nightly SOLARIS job.

Why it started failing recently? Because the test was added yesterday c2b02f24dff and it's using posix_setrlimit()

See https://docs.oracle.com/cd/E88353_01/html/E37841/setrlimit-2.html
and https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/sys/resource.h

phpGH-19281 made posix_setrlimit() throw a ValueError for limits below -1,
on the assumption that -1 (RLIM_INFINITY on Linux) is the only valid
negative value. Solaris defines RLIM_INFINITY as (rlim_t)-3, so the
function now rejects PHP's own POSIX_RLIMIT_INFINITY constant:

  ValueError: posix_setrlimit(): Argument #3 ($hard_limit) must be
  greater or equal to -1

On Solaris, also accept RLIM_INFINITY. Other platforms keep the
existing check.

This fixes ext/session/tests/session_write_failure_keeps_data.phpt in
the nightly SOLARIS job.

See https://docs.oracle.com/cd/E88353_01/html/E37841/setrlimit-2.html
and https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/sys/resource.h
@jorgsowa jorgsowa self-assigned this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant