Jump to content
Sign in to follow this  
Rinz

мистические id-терминаторы

Recommended Posts

вот это увлекательный вечер у меня...

 

копаемся с заказчиком на тестовом поддомене, апдейтим сайт. я - файлы и прочее, он категории переименовывает и внутреннюю красоту наводит.

Вчера утром легла главная страница сайта с ошибкой 500. Естественно, первая мысль - на файлы. Но, после восстановления бекапа сайта, он не поднялся, а все исправилось после отката базы.

Заказчик был расстроен, что кучу работы переделывать.

 

а я думаю - почему база положила только главную, да еще и с internal server error?

в логах это: 

malformed header from script. Bad header=HTTP1.0/1.1 404 Not Found: index.php

в общем, так ни к чему и не пришли, решили забить данные в базу снова.

 

сегодня вечером все повторяется. Владелец сайта говорит, что в этот момент работал с фильтром товаров, уронил сайт явно он, по логам вижу.

и начались пляски  с бубном.

к слову, фильтр старый, левый и больше не поддерживается разработчиком, но исправно работал не один год.

Сайт снова поднялся после отката базы.

После пару часов сравнения таблиц и вычисления виновника, оказалось, что виноваты два айдишника.

 

есть таблицы:

category_option - id опции;

category_option_description -  id опции, имя опции;

category_option_value -  id значений опции, id соответствующей опции;

category_option_value_description - названия значений опции и  id опции.

 

В category_option_value_description присутствовали несколько строк с id опций 50 и 55. только их удаляю - сайт поднимается. Добавляю - ложится. никаких спецсимволов и прочего - просто текст. изменение их названий не помогло. В других таблицах - наоборот: удаляю записи - сайт падает. Добавляю - работает. Все уперлось именно в эти два айдишника.

 

Из админки добавляю им значений - ложится сайт.

удаляю вообще эти опции с этими айдишниками - ложится.

Меняю что угодно на что угодно - то же самое.

 

В общем, пока удалось через базу отключить эти опции, отвязать их от категорий (даже отключенные показывались), вытереть им значения опций. но удалить их не могу. Есть айдишники и больше 55, т.е. дальше записи идут корректно.

 

Как бы можно оставить и так и стараться никогда в админке не заходить в эти две опции. Но некрасиво же..

 

Собственно, вопросы:

1. Почему наличие этих строк ложит главную страницу?

2. Почему вообще БД роняет сайт с ошибкой 500 Internal Server Error?

3. Что это за ошибка в логе и как это он не может найти index.php?

4. Как удалить вообще все упоминания об этих опциях, ведь если записи идут дальше по порядку, значит можно?

 

Меня больше волнует второй вопрос, конечно...

Share this post


Link to post
Share on other sites

ошибку 500 смотрите в логах сервера, там должно быть больше информации об ошибке. 

возможно какой-то баг в этом модуле фильтра, возможно ошибка в mysql запросе, нужно изучать код модуля фильтра, но подобные модули обычно достаточно сложные для понимания логики работы, а заброшенные и написанные криво и еще сложнее.. 

Share this post


Link to post
Share on other sites

ошибку 500 смотрите в логах сервера, там должно быть больше информации об ошибке. 

это все, что было в логах сервера..

Техподдержка сказала - восстанавливайте рабочий бекап.

в логах сайта, естественно, ничего нет

Share this post


Link to post
Share on other sites

А случайненько ничего в куках не хранится?

Share this post


Link to post
Share on other sites

фильтр от SooR`a?

>> В category_option_value_description присутствовали несколько строк с id опций 50 и 55.

если по кол-ву языков - так и должно быть.

2. ну так смотри логи

3.

Bad header=HTTP1.0/1.1
как вариант:

сервер/браузер не поддерживает один из протоколов. найди в коде и укажи только поддерживаемый.

4. как бы... руками. смотри связи столбцов. возможно они связаны с другими таблицами.

Share this post


Link to post
Share on other sites

фильтр от SooR`a?

нет

 

если по кол-ву языков - так и должно быть.

 

нет, имелось в виду, что одной опции было назначено несколько значений, поэтому и несколько строк. язык один и он тут ни при чем

 

2. ну так смотри логи

логи чего? мускуля? все что было в логах, и это было в error логе Апача, в первом сообщении.

я перефразирую вопрос: как база данных может вообще вызывать 500 ошибку, если 500 ошибка - это "сервер не может обработать запрос"? База же работает, данные отдает. это же не незакрытая скобка в коде.

 

сервер/браузер не поддерживает один из протоколов. найди в коде и укажи только поддерживаемый.

Опять же, как наличие каких-то значений в таблице фильтра базы может влиять на протокол передачи данных?

 

4. как бы... руками. смотри связи столбцов. возможно они связаны с другими таблицами

попытки вычистить эти строки руками - в первом сообщении. таблицы фильтра связаны только между собой, и остальные таблицы не затрагивают. фильтра нет даже на главной странице вообще, т.е. он не должен влиять на работу главной.

 

в общем, пока эти глючные опции глубоко заныканы в админке, чтоб к ним не было доступа, все остальное работает, как и работало. баг купирован, но не вылечен, ибо хз как

Share this post


Link to post
Share on other sites

так что там с куками?

Share this post


Link to post
Share on other sites

Rinz, первый заход в google ставит точку:

malformed header from script. Bad header=HTTP1.0/1.1 404 Not Found
ботва с генерируемым магазином заголовком (где-то в коде фильтра, судя по твоим рассказам).

смотри, что отправляется и возвращается в заголовках.

ищи, ГДЕ это формируется, и исправляй.

кроме того есть вероятность, что ты глобально запорол отдачу заголовка "404 Not Found" - попробуй вызвать его на других страницах (другим способом).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.