PHP. heap corruption detected в phpQuery и Segmentation fault в PHP CLI
После переустановки PHP 5.2.10 столкнулся я с такой проблемой как "linked list corrupt on efree() - heap corruption detected" при использовании библиотеки phpQuery, а также "Segmentation fault" в CLI версии свежеустановленного PHP.
Ошибка "linked list corrupt on efree() - heap corruption detected" проявлялась только в одном месте, и связана была с DOM модулем, как мне казалось. До переустановки я не юзал phpQuery в продакшене, поэтому не мог сказать однозначно повлияла ли это переустановка, или так и было бы с ошибкой.
При запуске любого скрипта в CLI режиме, было нечто подобное:
php -f /www/script.php
Segmentation fault
Решение проблемы с Segmentation fault в CLI
Погуглив немного, не нашел ничего путного и запостил на Пыху топик о своей проблеме, пару дней мы думали по этой теме, предлагались разные решения и побороли в первый день "Segmentation fault" в CLI, путем упорядочивания PHP модулей (спасибо пользователю OFF), сейчас у меня так:
Решение оказалось совсем для меня не очевидным, во всем оказался виноват "Suhosin Patch", который нужен для обеспечения безопасности. Я просто переустановил PHP, но в этот раз отключил Suhosin.
В данный момент, я планирую включить снова Suhosin Patch, потому что запускать тот злосчастный скрипт мне необходимо всего раз 3-6 месяцев, а за это время может возникнут патчи бага, либо найдется куда более продуктивное решение.
сухосина фтопку, скрипты на php либо самостоятельно, либо тотальная проверка с оладкой,всех переменных всех методов и классов, с максимальным уровнем предупреждений и исправлением любой баги,любой пустой переменной,с полным осознанием того что написано в скрипте, что он делает и для чего нужен. Во всех подозрительных местах либо написать свой вариант (часто получается изящьнее), либо переименовать переменные (переименовать-переменные =D )
исключить из скрипта символы подавления @ ошибок.
переписать проверки входных данных (если такие есть)
магические кавычки - фтопку только мешают,использовать placeholderы для обращения к базе...
безопасность-безопасность, не надо писать или использовать дырявые скрипты тогда и suhosin не нужен будет...
Комментарии
сухосина фтопку, скрипты на php либо самостоятельно, либо тотальная проверка с оладкой,всех переменных всех методов и классов, с максимальным уровнем предупреждений и исправлением любой баги,любой пустой переменной,с полным осознанием того что написано в скрипте, что он делает и для чего нужен. Во всех подозрительных местах либо написать свой вариант (часто получается изящьнее), либо переименовать переменные (переименовать-переменные =D )
исключить из скрипта символы подавления @ ошибок.
переписать проверки входных данных (если такие есть)
магические кавычки - фтопку только мешают,использовать placeholderы для обращения к базе...
безопасность-безопасность, не надо писать или использовать дырявые скрипты тогда и suhosin не нужен будет...
agat, ага, но не всегда свой код используется (WP, Drupal, etc).
кстати, упорядочивание пхп-экстеншнов — херь полная
единственное, spl надо перед мусклем ставить, а в остальном — бред, по-моему
epsyl, ага, по твоему. Есть целые патчи сортирующие экстеншены в правильном порядке.
Расстановка важна - 100%
epsyl - попробуй на досуге поменять местами, все рухнет...
З.Ы. я пробовал =)
интересно решил проблему
http://php-fpm.anight.org/downloads/freebsd-port/
Pandora, что вы этим хотели сказать?
Оставьте свой комментарий