Files
Linux-Server-Management-Too…/lib
cschantz 096a2d795f Fix critical bug: never recommend 0 for pm.max_children in batch analyzer
ROOT CAUSE:
The batch analyzer calls calculate_optimal_php_settings() which relies on
calculate_max_children_memory_based(). When no active PHP-FPM processes exist
(common in ondemand mode with sparse traffic), both functions returned 0.

IMPACT:
- Recommending pm.max_children: 0 (completely invalid, breaks PHP-FPM)
- Causes silent failures in optimization reports
- Especially problematic with ondemand PM mode + low traffic domains

FIXES:
1. calculate_max_children_memory_based():
   • When no processes detected: return 20 instead of 0
   • When invalid parameters: return 20 instead of 0

2. calculate_optimal_php_settings():
   • Added CRITICAL safety check: if final_max_children <= 0, use 20
   • Ensures output is always safe regardless of calculation errors

DEFAULTS:
- Memory-based: 20 (safe minimum when no process data available)
- Traffic-based: Uses actual peak concurrent if available
- Safety guardrail: 20 minimum in all code paths

This prevents invalid recommendations and ensures batch analyzer always
provides sensible, actionable optimization guidance.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-02-18 22:13:25 -05:00
..