1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.0 (88) Удаляются персонажи (Решено)

Тема в разделе 'PW Решённые вопросы', создана пользователем syxid, 9 апр 2014.

Статус темы:
Закрыта.
  1. TopicStarter Overlay

    syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    В логе вижу такое:
    GetRole failed. roleid=65027 status=3

    После этого уровень персонажа ставится в 0 и далее:
    test gamedbd: debug : TimeoutRoleQuery, roleid=65027
    test gdeliveryd: debug : delroleannounce::Try to delrole 65027
    test gamedbd: debug : DBDeleteRole, roleid=65027

    Ошибка получения персонажа - удаление персонажа по таймеру. Так периодически просто удаляются персы
    dbtool не помогает.
    Я понимаю, что видимо ошибка получения персонажа базой при очередной проверке, но как это можно вылечить?
    Вариант вайп в настоящее время не рассматривается, подозреваю, что он и не поможет.
    Может кто сталкивался с подобным и знает пути решения

    П.С. Еще одна странность, процессов gamedbd при запуске всего 1, хотя на предыдущих версиях было 22. У кого 1.5.1 на тесте есть сколько процессов gamedbd у вас? Хочу понять это изменения в версиях 1.5.0+ или проблемы с модулем базы/настройками

    Решение:
    В общем суточный тест прошел успешно.
    Отпишу на всякий случай, что было сделано.
    Предыстория:
    В один далеко не прекрасный момент было замечено массовое удаление персонажей. Началось это примерно через неделю начала тестов с перенесенной базой старого сервера. Никаких ошибок при этом в world2.err лог не писалось!
    В логе world2.trace наблюдалась такая картина:
    test gamedbd: debug : TimeoutRoleQuery, roleid=65027
    test gdeliveryd: debug : delroleannounce::Try to delrole 65027
    test gamedbd: debug : DBDeleteRole, roleid=65027


    Просто За секунду происходило удаление от 5 до 30 персонажей. Выборка удаленных персонажей совершенно случайная. Удаление происходило с определенными равными промежутками. Время между ударениями после рестарта базы менялось.
    Восстановление с помощью dbtool никакого эффекта не давало, более того, после восстановления все персонажи уже удаленные ранее (если брать базу из бекапа) удалялись сразу при старте сервера.
    Причем все это носит лавинообразный характер. Чем дольше это длится, тем чаще и больше удаляется.

    В конце концов было обращено внимание на странные ошибки при запуске сервера, причем ругался не модуль gamedbd, а модуль gdeliveryd.
    Ругался он на лоты в системе WеbTrade (кто не знает новая фишка в офлайновой торговле на версиях 1.5.0+)
    При всем том, система WebTrade отключена в конфиге gdeliveryd!
    При очередном восстановлении базы, замечены непонятные items в таблицах:
    • playershop
    • weborderitem
    • webtrade
    • webtradesold
    Решение:
    Сделан частичный вайп, удалены перечисленные таблицы + удалена таблица waitdel содержащая записи о персонажах подлежащих удалению (чтобы не потерять исправных персонажей)
    При запуске сервера не должно быть ошибок gdeliveryd, ругающихся на систему WеbTrade. Если они появляются значит пора восстанавливать базу, иначе вы рискуете потерять персонажей.

    П.С. да я нуб, можно кидать в меня тапочками и ругать нехорошими словами. Но отписал решение, для тех кто может столкнуться с подобным. И ему не придется "грызть ногти" в попытках понять и исправить все это :D
    П.П.С модераторам просьба, если можно, добавьте этот пост к первому, чтобы было сразу видно.
    Последнее редактирование модератором: 10 апр 2014
  2. NetSpirit B L A C K    L I S T Пользователи

    Сообщения:
    1.390
    Лайки:
    374
    Пол:
    Мужской
    Репутация:
    5
    Тебе случаем не ломанули серв?
  3. TopicStarter Overlay

    syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    Доступ на сервер только с одного ip, база доступна только с 127.0.0.1
    Да и нафига взламывать тест сервер, на котором ничего нет
  4. Тыщ Группа анонимных алкоголиков Art Old school Пользователи

    Сообщения:
    1.573
    Лайки:
    812
    Пол:
    Мужской
    Репутация:
    2
    база попортилась
  5. TopicStarter Overlay

    syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    Это понятно, что проблема с самой базой.
    Интересуют пути решения, так как удаленные персонажи не битые, если восстановить (копированием xml) то персонажем можно играть, а вот если просто сделать откат базы, то все уже удаленные до этого персонажи, удаляются еще при запуске сервера, будто база помнит кого надо удалить. Удаление идет совершенно случайным образом, на кого "рандом" покажет
  6. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
    Честно - х/з. 1.5.0 не юзал, заюзал шару 1.5.1.
    Количество процессов геймдбд - 1. ОЗУ жрёт столько же, как на старых 22.
    Видно что-то поменяли.
    С базами персонажей проблем нет. Ни с новыми, ни со старыми.
  7. rusran Пользователи

    Сообщения:
    18
    Лайки:
    8
    Пол:
    Мужской
    Репутация:
    0
    О процессах в 1.5.1

    Вложения:

    • pweb.png
      pweb.png
      Размер файла:
      628,8 КБ
      Просмотров:
      60
  8. TopicStarter Overlay

    syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    ясно, с базой я заметил,что если на нее нагрузка возрастает подключаются новые, дублирующие процессы.
    Эта фигня началась несколько дней назад, сейчас проверяю одну теорию.
    Как заметил при отключенном трейдклиенте появляются записи в базе webtrade и др. И при этом во время запуска сервера в лог сыпятся ошибки на лоты которые там якобы существуют.
    Удалил нафиг глючные базы (мини вайп) сейчас тест, время покажет :(
  9. Нейтро́н Пользователи

    Сообщения:
    60
    Лайки:
    5
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    Fabled PW
    Возможно нету места на сервере и из-за этого gamedbd падает.
    --- добавлено: 10 апр 2014 в 20:20 ---
    Проверь сколько места на сервере "df -h" если всё норм юзни скрипт на восстановление бызы
    "
    mkdir dbhomewdb/data.fix
    ls dbhomewdb/dbdata/ | awk '{ print "./dbtool -r -s dbhomewdb/dbdata/"$1" -d dbhomewdb/data.fix/"$1 }' | /bin/sh
    rm -fr dbhomewdb/dbdata
    rm -fr dbhomewdb/dblogs/*
    mv dbhomewdb/data.fix dbhomewdb/dbdata
    "
    Создай в *.sh и дай права 777 и запусти с /home/gamedbd/
    Последнее редактирование модератором: 18 апр 2014
  10. TopicStarter Overlay

    syxid Пользователи

    Сообщения:
    284
    Лайки:
    115
    Репутация:
    0
    В общем суточный тест прошел успешно.
    Отпишу на всякий случай, что было сделано.
    Предыстория:
    В один далеко не прекрасный момент было замечено массовое удаление персонажей. Началось это примерно через неделю начала тестов с перенесенной базой старого сервера. Никаких ошибок при этом в world2.err лог не писалось!
    В логе world2.trace наблюдалась такая картина:
    test gamedbd: debug : TimeoutRoleQuery, roleid=65027
    test gdeliveryd: debug : delroleannounce::Try to delrole 65027
    test gamedbd: debug : DBDeleteRole, roleid=65027


    Просто За секунду происходило удаление от 5 до 30 персонажей. Выборка удаленных персонажей совершенно случайная. Удаление происходило с определенными равными промежутками. Время между ударениями после рестарта базы менялось.
    Восстановление с помощью dbtool никакого эффекта не давало, более того, после восстановления все персонажи уже удаленные ранее (если брать базу из бекапа) удалялись сразу при старте сервера.
    Причем все это носит лавинообразный характер. Чем дольше это длится, тем чаще и больше удаляется.

    В конце концов было обращено внимание на странные ошибки при запуске сервера, причем ругался не модуль gamedbd, а модуль gdeliveryd.
    Ругался он на лоты в системе WеbTrade (кто не знает новая фишка в офлайновой торговле на версиях 1.5.0+)
    При всем том, система WebTrade отключена в конфиге gdeliveryd!
    При очередном восстановлении базы, замечены непонятные items в таблицах:
    • playershop
    • weborderitem
    • webtrade
    • webtradesold
    Решение:
    Сделан частичный вайп, удалены перечисленные таблицы + удалена таблица waitdel содержащая записи о персонажах подлежащих удалению (чтобы не потерять исправных персонажей)
    При запуске сервера не должно быть ошибок gdeliveryd, ругающихся на систему WеbTrade. Если они появляются значит пора восстанавливать базу, иначе вы рискуете потерять персонажей.

    П.С. да я нуб, можно кидать в меня тапочками и ругать нехорошими словами. Но отписал решение, для тех кто может столкнуться с подобным. И ему не придется "грызть ногти" в попытках понять и исправить все это :D
    П.П.С модераторам просьба, если можно, добавьте этот пост к первому, чтобы было сразу видно.
    Dimkaa и JoLan нравится это.
  11. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Вот все бы так отписывали свои решения, цены бы форуму не было. Прикрепил.
    Aksel нравится это.
Черновик сохранён Черновик удалён
Similar Threads
  1. winrar
    Ответов:
    3
    Просмотров:
    1.718
  2. aVSL
    Ответов:
    3
    Просмотров:
    1.462
  3. Devil94
    Ответов:
    19
    Просмотров:
    3.746
  4. qwerty12345
    Ответов:
    2
    Просмотров:
    1.699
  5. Drakon4eg
    Ответов:
    5
    Просмотров:
    1.221
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей