вторник, 1 мая 2012 г.

Две проблемы

Некоторое время назад по работе и дома я столкнулся с парой довольно странных вещей, с точки зрения примитивной логики виндоёбов необъяснимых и долженствующих вызывать радостные крики "линукс говно народная подделка под операционную систему, сплошь всё слизанное, сноси нафиг и ставь винду".

Странная и совершенно необъяснимая ошибка "cups-insecure-filter".
К счастью, на форумах не все посылают читать мануалы, а некоторые рассказывают, что решается это так:
# cd /usr/lib/
# chown -R root:root cups/
# cd /usr/lib64/
# chown -R root:root cups/
И вот ещё одна странная вещь.
Как-то раз Андрюша обнаружил кое-что из написанного мною кода РосЯмы на govnokod.ru, а именно вот такую конструкцию, которая затыкала все буферы вывода, которые открывал Битрикс для реализации вложенных функций:
ob_end_clean();
ob_end_clean();
ob_end_clean();
ob_end_clean();
Среди насмешек над автором этого кода и над Битриксом я встретил один дельный совет, делать так:
while(ob_get_level()) ob_end_clean();
По-моему, очень элегантное и правильное решение, спасибо человеку, который это предложил. Я исправил код РосЯмы и с тех пор делал именно так. До одного дня, когда заказчик одного Большого Сложного Государственного Проекта Два Ноль пожаловался на то, что что-то сайт подвисает в некоторых местах. "Некоторые места" - это экспорт CSV/XML, в которых я применял те самые конструкции по убиванию буфера Битрикса, чтоб вывести свои хедеры и свой контент. Сначала я грешил на функцию header_remove(), потому что у заказчика на его Большом Государственном Хостинге стоит PHP не самой свежей версии, но потом выяснил, что на самом деле while(ob_get_level()) организовывает вечный цикл. То ли это связано с настройками хостинга (Ubuntu Server, вроде бы прямо из коробки), то ли с тем, что Битрикс переопределяет эти функции на какие-то свои, которые работают не так, как от них ожидается, и это проявилось это только тут.

Но с тех пор я снова пишу пять-шесть раз подряд ob_end_clean().

Комментариев нет:

Отправить комментарий

Ублюдочный Гугл поломал форму комментариев. Извините.