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

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

本贴由 syxid2014-04-09 发布. 版块名称: PW Решённые вопросы

主题状态:
主题已关闭, 停止回复.
  1. TopicStarter Overlay

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

    注册日期:
    2011-08-08
    帖子:
    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
    П.П.С модераторам просьба, если можно, добавьте этот пост к первому, чтобы было сразу видно.
    Последнее редактирование модератором: 2014-04-10
  2. NetSpirit B L A C K    L I S T Пользователи

    注册日期:
    2014-03-24
    帖子:
    1,390
    支持:
    374
    性别:
    Репутация:
    5
    Тебе случаем не ломанули серв?
  3. TopicStarter Overlay

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

    注册日期:
    2011-08-08
    帖子:
    284
    支持:
    115
    Репутация:
    0
    Доступ на сервер только с одного ip, база доступна только с 127.0.0.1
    Да и нафига взламывать тест сервер, на котором ничего нет
  4. Тыщ Группа анонимных алкоголиков Art Old school Пользователи

    注册日期:
    2010-07-06
    帖子:
    1,573
    支持:
    812
    性别:
    Репутация:
    2
    база попортилась
  5. TopicStarter Overlay

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

    注册日期:
    2011-08-08
    帖子:
    284
    支持:
    115
    Репутация:
    0
    Это понятно, что проблема с самой базой.
    Интересуют пути решения, так как удаленные персонажи не битые, если восстановить (копированием xml) то персонажем можно играть, а вот если просто сделать откат базы, то все уже удаленные до этого персонажи, удаляются еще при запуске сервера, будто база помнит кого надо удалить. Удаление идет совершенно случайным образом, на кого "рандом" покажет
  6. Deron Old school Пользователи

    注册日期:
    2011-01-02
    帖子:
    1,123
    支持:
    533
    性别:
    Репутация:
    4
    Честно - х/з. 1.5.0 не юзал, заюзал шару 1.5.1.
    Количество процессов геймдбд - 1. ОЗУ жрёт столько же, как на старых 22.
    Видно что-то поменяли.
    С базами персонажей проблем нет. Ни с новыми, ни со старыми.
  7. rusran Пользователи

    注册日期:
    2011-01-28
    帖子:
    18
    支持:
    8
    性别:
    Репутация:
    0
    О процессах в 1.5.1

    附件文件:

    • pweb.png
      pweb.png
      文件大小:
      628.8 КБ
      浏览:
      60
  8. TopicStarter Overlay

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

    注册日期:
    2011-08-08
    帖子:
    284
    支持:
    115
    Репутация:
    0
    ясно, с базой я заметил,что если на нее нагрузка возрастает подключаются новые, дублирующие процессы.
    Эта фигня началась несколько дней назад, сейчас проверяю одну теорию.
    Как заметил при отключенном трейдклиенте появляются записи в базе webtrade и др. И при этом во время запуска сервера в лог сыпятся ошибки на лоты которые там якобы существуют.
    Удалил нафиг глючные базы (мини вайп) сейчас тест, время покажет :(
  9. Нейтро́н Пользователи

    注册日期:
    2013-09-27
    帖子:
    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/
    Последнее редактирование модератором: 2014-04-18
  10. TopicStarter Overlay

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

    注册日期:
    2011-08-08
    帖子:
    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
    П.П.С модераторам просьба, если можно, добавьте этот пост к первому, чтобы было сразу видно.
    已获得DimkaaJoLan的支持.
  11. JoLan Команда форума Администратор AngeliCore Программист

    注册日期:
    2010-03-29
    帖子:
    1,061
    支持:
    948
    性别:
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Вот все бы так отписывали свои решения, цены бы форуму не было. Прикрепил.
    已获得Aksel的支持.
Черновик сохранён Черновик удалён
主题状态:
主题已关闭, 停止回复.

分享此页面