diff --git a/lib/php-analyzer.sh b/lib/php-analyzer.sh index 0873645..73f845f 100644 --- a/lib/php-analyzer.sh +++ b/lib/php-analyzer.sh @@ -1001,11 +1001,11 @@ calculate_server_memory_capacity() { done <<< "$user_domains" done <<< "$users" - # Add MySQL memory usage to total + # Add MySQL memory usage to total (with timeout to prevent hanging) local mysql_memory_mb=0 local mysql_status local mysql_info - mysql_info=$(detect_mysql_memory_usage 2>/dev/null) + mysql_info=$(timeout 5 detect_mysql_memory_usage 2>/dev/null) if [ $? -eq 0 ] && [ -n "$mysql_info" ]; then mysql_memory_mb=$(echo "$mysql_info" | cut -d'|' -f3 || echo "0") mysql_status=$(echo "$mysql_info" | cut -d'|' -f4) @@ -1391,9 +1391,9 @@ detect_mysql_memory_usage() { local max_connections=150 # Default if command -v mysql >/dev/null 2>&1; then - # Try to query MySQL directly - buffer_pool_mb=$(mysql -Nse "SELECT ROUND(@@innodb_buffer_pool_size/1024/1024)" 2>/dev/null || echo "0") - max_connections=$(mysql -Nse "SELECT @@max_connections" 2>/dev/null || echo "150") + # Try to query MySQL directly (with 2 second timeout to prevent hanging) + buffer_pool_mb=$(timeout 2 mysql -Nse "SELECT ROUND(@@innodb_buffer_pool_size/1024/1024)" 2>/dev/null || echo "0") + max_connections=$(timeout 2 mysql -Nse "SELECT @@max_connections" 2>/dev/null || echo "150") fi # If we couldn't get it from MySQL, try my.cnf