Skip to content

Laravel Octane + FrankenPHP segfault (exit status 139) on PHP 8.3 ZTS with native extensions #1039

@Chanceium

Description

@Chanceium

Description

Issue

The Solidtime container crashes with a segmentation fault (exit status 139) shortly after startup when running with CONTAINER_MODE: http.

Environment

  • Image: solidtime/solidtime:latest
  • PHP: 8.3.23 (ZTS)
  • Server: FrankenPHP with Laravel Octane
  • Container: Docker
  • Orchestration: Docker Compose

Steps to Reproduce

  1. Start container with docker-compose up
  2. Observe server starts and caches are built successfully
  3. Server crashes with supervisor restart loop

Expected Behavior

Server should stay running and accept requests without segfaults.

Actual Behavior

2026-03-18 00:45:03,641 WARN exited: octane_0 (exit status 139; not expected)
2026-03-18 00:45:04,644 INFO spawned: 'octane_0' with pid 53
2026-03-18 00:45:05,646 INFO success: octane_0 entered RUNNING state

Exit status 139 = SIGSEGV (segmentation fault at C level)

Root Cause Analysis

  • PHP 8.3.23 built with ZTS (Thread Safe)
  • FrankenPHP + Octane keep workers long-lived with threading
  • Loaded high-risk extensions: uv, rdkafka, vips, memcached, redis
  • Issue: ZTS + FrankenPHP + these extensions = memory corruption in worker lifecycle

PHP Modules Loaded

bcmath, bz2, Core, ctype, curl, date, dom, exif, fileinfo, filter, gd, hash, 
iconv, igbinary, intl, json, ldap, libxml, mbstring, memcached, mysqlnd, 
openssl, pcntl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, 
posix, random, rdkafka, readline, redis, Reflection, session, SimpleXML, 
sockets, sodium, SPL, sqlite3, standard, tokenizer, uv, vips, xml, xmlreader, 
xmlwriter, Zend OPcache, zip, zlib

Suggested Fix

  1. Use PHP 8.2/8.3 NON-ZTS instead of ZTS build
  2. Switch from FrankenPHP to RoadRunner (more stable for Octane)
  3. Reduce extension load - particularly uv, rdkafka, vips if not critical
  4. Document Octane + FrankenPHP limitations in setup guide

Notes

  • The Laravel application itself is sound (boots correctly)
  • Issue is runtime/extension level, not application code
  • RoadRunner is known to be more stable with heavy native extension loads

Steps To Reproduce

Going to /admin in the solidtime and going to Users or Organizations

Self-hosted or Cloud?

Self-Hosted

Version of solidtime: (for self-hosted)

latest

solidtime self-hosting guide: (for self-hosted)

No response

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