Странно отображаются даты в заказах хостинга и vps

Ошибки, проблемы, способы их решения.
sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение sasha181 » 2015-03-07 21:02:52

После обновления сервера mysql до mariadb 10.0 и пересборки php (чтобы обновить php клиент) как-то странно стали отображаться даты окончания хостинга и vps .
Если зайти просто в раздел, то показывает, что хостинг у всех заканчивается сегодня.
При этом в учёте заказа всё в порядке. Верные данные отображает.
А если отсортировать по дате, то всё правильно показывает и в датах окончания заказа.
Вот пример со скриншотами:
http://joxi.ru/4AkZ9JEFRjRb2q.jpg
http://joxi.ru/YmEq0Ops3G3lm6.jpg

Подскажите пожалуйста, в каком направлении вообще копать.
С базой наверняка всё в порядке. Пробовал откатить и на несколько дней и на несколько месяцев назад базу. Проблема не пропадает.
Мемкэш тоже чистил.

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Странно отображаются даты в заказах хостинга и vps

Сообщение Alex Keda » 2015-03-08 0:46:39

sasha181 писал(а):Источник цитаты После обновления сервера mysql до mariadb 10.0

простите, а зачем? стояло что-то, работало...

подозреваю, что либо триггеры отвалились, либо ещё чё из этой же оперы.
попробуйте восстановить из дистрибутива

Код: Выделить всё

# mysql db_name < db/billing/triggers.sql
# mysql db_name < db/hosting/triggers.sql
Убей их всех! Бог потом рассортирует...

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение sasha181 » 2015-03-08 3:51:30

насчёт зачем - это долгая историй. Сервер исторически работает на 32 битах. Периодически в mysql подтекала память и временами из-за этого он подвисал. Последнее время стал чаще, решил для начала обновить, если подвисания не пройдут, прийдётся постепенно мигрировать на 64 бита. Для начала думаю базу перекинуть и через mysql-proxy прокинуть на 64 битный mysql запросы. Но это уже не о том.

Бекапы я делаю с тригерами. Откат базы не помог. На всякий случай накатил тригеры из дистрибутива. Тоже не помогло (( .

Отправлено спустя 4 минуты 41 секунду:
Кстати, как вариант причина может быть опять-таки в экранировании столбцов сортировки (SortOn), о которой в соседней теме говорили.
Где она лежит. Или сразу патч Ваш скиньте пожалуйста.

Отправлено спустя 24 минуты 48 секунд:
Самое интересное, что именно по id заказа если сортировать, слетает отображение даты окончания. При сортировке по любому другому пол. всё отлично.
Исправил у себя SortOn в драйвере DB
Пользователи, например, тоже не сортировались по группе. Теперь сортируются. Но ошибка с датами не исчезла (( (мемкеш ребутил)
У себя сделал так:

Код: Выделить всё

    foreach($SortOn as $ColumnID){
       #-------------------------------------------------------------------------
      $ColumnID = str_replace('`', '', $ColumnID);
      $ColumnID = DB_Escape($ColumnID);
      #-------------------------------------------------------------------------
      $Array[] = SPrintF('`%s`',$ColumnID);
//       $Array[] = $ColumnID;
    }

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение sasha181 » 2015-03-08 10:48:51

Нашёл я, в общем, корень проблемы.

Код: Выделить всё

SELECT `ID`,`OrderID`,`UserID`,`Domain`,`Parked`,`DaysRemainded`,`StatusID`,`StatusDate`,`ServiceID`,`UserNotice`,`AdminNotice`,ID as `Number`,(SELECT `Email` FROM `Users` WHERE `UserID` = `Users`.`ID`) as `Owner`,(SELECT CONCAT(`Name`,' (',(SELECT `Name` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `HostingSchemes`.`ServersGroupID`),')') FROM `HostingSchemes` WHERE `HostingSchemes`.`ID` = `HostingOrdersOwners`.`SchemeID`) as `Scheme`,DaysRemainded as `Expiration`,StatusID as `Status`,UNIX_TIMESTAMP() - `StatusDate` as `StatusOver` FROM `HostingOrdersOwners` GROUP BY `ID` ORDER BY Number LIMIT 0, 20


При сортировке по Number или ID возращает результат, в котором столбец DaysRemainded переименован в Expiration
Получается в результате выборки имеется 2 столбца Expiration и ни одного DaysRemainded
Если например убрать GROUP BY `ID`, всё как положено возвращается.
Также, если сортировать по другому полю, всё ОК.

Проставил ALGORITHM = TEMPTABLE и всё заработало как надо. Но TEMPTABLE, насколько понял, не поддерживает вставки и апдейты. Биллинг их использует в отображениях?

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Странно отображаются даты в заказах хостинга и vps

Сообщение Alex Keda » 2015-03-08 12:12:02

сидел полчаса сортировал по всякому заказы на хостинг...
нифига н еполучилось увидеть запрос в котором
sasha181 писал(а):Источник цитаты При сортировке по Number или ID возращает результат, в котором столбец DaysRemainded переименован в Expiration
Получается в результате выборки имеется 2 столбца Expiration и ни одного DaysRemainded

сдаётся мне, машка ваша умничает ....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
alezhen
Сообщения: 119
Зарегистрирован: 2015-02-16 12:22:03
Откуда: Россия
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение alezhen » 2015-03-08 15:35:54

у меня тоже подобная проблема была с датами
А при попытке сортировки по дате в общем разделе Услуги вообще на 500-ю вылетает.
На почту вывалило это:

Код: Выделить всё

[14:37:28.55][19548] [MySQL->Query]: SELECT COUNT(*) FROM OrdersOwners WHERE (`StatusID` IS NOT NULL)
[14:37:28.55][19548] [MySQL->Query]: SELECT COUNT(*) FROM OrdersOwners
[14:37:28.55][19548] [MySQL->Query]: SELECT COUNT(*) FROM OrdersOwners WHERE (`StatusID` IS NOT NULL) GROUP BY ID
[14:37:28.55][19548] [MySQL->Query]: SELECT `ID`,`UserID`,`OrderDate`,`StatusID`,`StatusDate`,`ServiceID`,(SELECT `Services`.`Code` FROM `Services` WHERE `OrdersOwners`.`ServiceID` = `Services`.`ID`) AS `Code`,`AdminNotice`,`UserNotice`,ID as `Number`,(SELECT `Email` FROM `Users` WHERE `UserID` = `Users`.`ID`) as `Owner`,(SELECT `Services`.`Item` FROM `Services` WHERE `OrdersOwners`.`ServiceID` = `Services`.`ID`) as `OrderType`,StatusID as `Status`,UNIX_TIMESTAMP() - `StatusDate` as `StatusOver` FROM `OrdersOwners` WHERE (`StatusID` IS NOT NULL) GROUP BY `ID` ORDER BY Expiration LIMIT 0, 20
[14:37:28.55][19548] [!] [!!1024]-[MySQL->Query]: Unknown column 'Expiration' in 'order clause' в линии 147 файла .../hosts/root/system/classes/auto/MySQL.class.php
[14:37:28.55][19548] [!] [!!1024]-[DB_Query]: невозможно осуществить запрос в линии 47 файла .../hosts/root/system/libs/auto/DB.php
[14:37:28.55][19548] [!] [!!1024]-[DB_Select]: невозможно осуществить запрос в линии 208 файла .../hosts/root/system/libs/auto/DB.php
[14:37:28.55][19548] [!] [!!1024]-500 в линии 155 файла .../core/Load.php(165) : eval()'d code
[14:37:28.55][19548] [!] [!!1024]-[Comp_Load]: не возможно загрузить компонент в линии 48 файла .../hosts/root/system/libs/auto/Comp.php
[14:37:28.55][19548] [!] [!!1024]-500 в линии 411 файла .../core/Load.php(165) : eval()'d code
[14:37:28.55][19548] [!] [!!1024]-[Comp_Load]: не возможно загрузить компонент в линии 48 файла .../hosts/root/system/libs/auto/Comp.php
[14:37:28.55][19548] [!] [!!1024]-500 в линии 165 файла .../core/Load.php(165) : eval()'d code
[14:37:28.55][19548] [!] [!!1024]-[Comp_Load]: не возможно загрузить компонент в линии 48 файла .../hosts/root/system/libs/auto/Comp.php
[14:37:28.55][19548] [!] [!!1024]-[system/modules/Main]: не удалось загрузить основной компонент системы в линии 68 файла .../hosts/billing/system/modules/Main.php
[14:37:28.55][19548] [!] [!!1024]-[JBs core]: не удалось загрузить базовый модуль в линии 660 файла .../core/Load.php

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Странно отображаются даты в заказах хостинга и vps

Сообщение Alex Keda » 2015-03-08 18:04:18

alezhen писал(а):Источник цитаты А при попытке сортировки по дате в общем разделе Услуги вообще на 500-ю вылетает.

гы... и правда.
походу, за 5 лет, что привёрнут этот раздел, я ни разу не додумался отсортировать по дате его =))
Убей их всех! Бог потом рассортирует...

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение sasha181 » 2015-03-09 1:39:17

alezhen писал(а):у меня тоже подобная проблема была с датами
А при попытке сортировки по дате в общем разделе Услуги вообще на 500-ю вылетает.
На почту вывалило это:

Код: Выделить всё

[14:37:28.55][19548] [!] [!!1024]-[MySQL->Query]: Unknown column 'Expiration' in 'order clause' в линии 147 файла .../hosts/root/system/classes/auto/MySQL.class.php

Видимо у Вас база наоборот вернула 2 столбца DaysRemainded , по аналогии с моей. Только у меня 2 столбца Expiration как раз возвращало .

Отправлено спустя 2 минуты 19 секунд:
Alex Keda писал(а):сидел полчаса сортировал по всякому заказы на хостинг...
нифига н еполучилось увидеть запрос в котором
sasha181 писал(а):Источник цитаты При сортировке по Number или ID возращает результат, в котором столбец DaysRemainded переименован в Expiration
Получается в результате выборки имеется 2 столбца Expiration и ни одного DaysRemainded

сдаётся мне, машка ваша умничает ....

Не исключено конечно.
А что насчёт вставок и апдейтов через views . Они могут использоваться в биллинге или можно так и оставить ALGORITHM = TEMPTABLE ?

Какая у Вас версия mysql ?

Аватара пользователя
Alex Keda
Сообщения: 2907
Зарегистрирован: 2009-10-07 14:30:54
Откуда: USSR
Поблагодарили: 20 раз

Странно отображаются даты в заказах хостинга и vps

Сообщение Alex Keda » 2015-03-09 13:06:50

нет, через вьюхи вставок нет
насколько я помню, MySQL такого не поддерживает
--
у меня 5.5
Убей их всех! Бог потом рассортирует...

sasha181
Сообщения: 134
Зарегистрирован: 2012-02-27 15:58:24
Откуда: Краснодар/Саранск
Контактная информация:

Странно отображаются даты в заказах хостинга и vps

Сообщение sasha181 » 2015-03-11 19:14:32

Поставил кстати percona server а 5.6 соседней vps , скинул туда базу биллинга, залил оригинальные views из дистрибутива. Всё работает нормально. Столбцы не дублируются. Видимо действительно перестарались разработчики mariadb с оптимизацией выборок.


Вернуться в «Решение проблем»

Кто сейчас на конференции

Сейчас этот форум просматривают: [YandexBot] и 4 гостя