Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Как собрать "треды"
#1
Так вышло что у меня "разработчик'у" сборки очень наплевать на своих клиентов и к решению их проблем относиться очень-очень туго.

У него было обновление ядра, после чего у меня начала зависать сервер, точнее даже не зависать, а отваливаться от БД.
Сервер продолжит работу, но зайти на него никто не сможет.
Через Контрл+С он начинает выключатся, но когда доходит до сохранения информаци выдаёт ошибку мол не может соединиться с БД.

Помогает только закрытие и вновь запуск сервера.

После долгих мучений разработчика он отписал вот что:
Цитата:что-бы нам быстрее понять в чем причина, поставьте JDK, потом если повиснет, ищите ид процесса геймсерера и набираете:
/путь_к_jdk/jstack ид_процесса > /root/threaddumps.log
потом
top -Hp ид_процесса > /root/threads.log
там файл создастса этот, и через сикунд 30 прибьете через ctrl-c, чтоб все треды собрались, я увижу какой тред и почему повис

Это было когда я пользовался дебианом, но в связи с падениями по 2-3 раза в сутки сервер быстро загнулся, теперь стоит "у меня дома на Win 7" как тестовый для исправлении именно этого бага, чтоб сервер не падал.

Я смог создать лишь threaddumps.log, а вот как сделать 2-й пунк того что написал разработчик - не знаю, я его 2 недели вылавливал, но даже когда он объявился после моего вопроса снова пропал.

Поэтому я пишу тут и надеюсь на вашу помощь.

П.С Сервер падал на Windows Server 2003\2008, Windows 7 x64 Ult., Debian 6.0.
Везде настройки MySQL были разные, на дебиане my.cnf от сервера с пиковым онлайном 1300.
П.С.С Все свои доработки (скрипты) я также отключал, и пользовался "почти чистой" сборкой.
Ответ
#2
Смените разработчика.
Если у него такое отношение, то при выходе новых багов , опять будете ждать.
Ответ
#3
ShadowPK Написал:Смените разработчика.
Если у него такое отношение, то при выходе новых багов , опять будете ждать.

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

Хотелось бы узнать о сборе тредов...
Ответ
#4
По тексту "разработчика" видно, что он либо с Украины, либо школьник.
"сикунды" и "создастса" показывают все.
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
#5
Zubastic Написал:По тексту "разработчика" видно, что он либо с Украины, либо школьник.
"сикунды" и "создастса" показывают все.
офф
Ответ
#6
Zubastic Написал:По тексту "разработчика" видно, что он либо с Украины, либо школьник.
"сикунды" и "создастса" показывают все.

Секунды, что в укр, что в рус, пишутся одинаковоWink
Соответственно, допустить такую ошибку могут и у вас и у насBig Grin

По теме, нефиг юзать не понятно, что и от когоBig Grin

В ГС ошибок никаких нету, когда он повисает?
Какая ошибка при попытке сохранится?
open-team.ru - Freya, HighFive...
Ответ
#7
Zubastic Написал:По тексту "разработчика" видно, что он либо с Украины, либо школьник.
"сикунды" и "создастса" показывают все.
Он не школьник, ему толи 27 лет, когда он спешит всегда пишет с ошибками, а когда не спешит, ошибок вообще нету.

DiagoD Написал:Секунды, что в укр, что в рус, пишутся одинаковоWink
Соответственно, допустить такую ошибку могут и у вас и у насBig Grin

По теме, нефиг юзать не понятно, что и от когоBig Grin

В ГС ошибок никаких нету, когда он повисает?
Какая ошибка при попытке сохранится?

Я юзаю не непонятное, просто не хочу говорить что за сборка, нужно уважать труд людей...

->>В ГС ошибок никаких нету, когда он повисает?
Нету ошибок если никто фармить мобов не будет, а если будут то напишет:
Код:
Could not update item 268472236 in DB: Reason: java.sql.SQLException
java.sql.SQLException
at com.jolbox.bonecp.DefaultConnectionStrategy.getConnectionInternal(DefaultConnectionStrategy.java:111)
at com.jolbox.bonecp.AbstractConnectionStrategy.getConnection(AbstractConnectionStrategy.java:85)
at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:510)
at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:114)
at net.sf.l2j.L2DatabaseFactory.findConnect(L2DatabaseFactory.java:123)
at net.sf.l2j.L2DatabaseFactory.get(L2DatabaseFactory.java:112)
at net.sf.l2j.gameserver.model.L2ItemInstance.updateInDb(L2ItemInstance.java:1428)
at net.sf.l2j.gameserver.model.L2ItemInstance.access$000(L2ItemInstance.java:36)
at net.sf.l2j.gameserver.model.L2ItemInstance$LazyUpdateInDb.updateInDb(L2ItemInstance.java:174)
at net.sf.l2j.gameserver.model.L2ItemInstance$LazyUpdateInDb.run(L2ItemInstance.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

Когда сохраняет:
Код:
SIGTERM received. Shutting down after 3 sec!
java.sql.SQLException
    at com.jolbox.bonecp.DefaultConnectionStrategy.getConnectionInternal(DefaultConnectionStrategy.java:111)
    at com.jolbox.bonecp.AbstractConnectionStrategy.getConnection(AbstractConnectionStrategy.java:85)
    at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:510)
    at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:114)
    at net.sf.l2j.L2DatabaseFactory.findConnect(L2DatabaseFactory.java:123)
    at net.sf.l2j.L2DatabaseFactory.get(L2DatabaseFactory.java:112)
    at net.sf.l2j.gameserver.model.L2ItemInstance.updateInDb(L2ItemInstance.java:1428)
    at net.sf.l2j.gameserver.model.L2ItemInstance.access$000(L2ItemInstance.java:36)
    at net.sf.l2j.gameserver.model.L2ItemInstance$LazyUpdateInDb.updateInDb(L2ItemInstance.java:174)
    at net.sf.l2j.gameserver.model.L2ItemInstance$LazyUpdateInDb.run(L2ItemInstance.java:166)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
Ответ
#8
Отправьте разраба учить возможности ManagementFactory.getThreadMXBean() или как минимум sigar api
Ответ
#9
KID Написал:Отправьте разраба учить возможности ManagementFactory.getThreadMXBean() или как минимум sigar api

Я думаю он это проверял, падения были слишком частые, но один раз он всё же сделал "для меня" обновления и падения стали намного реже.
И такая проблема из всех клиентов ТОЛЬКО у меня.
Ответ
#10
Где же вы такие беретесь.
Настройки MySQL меняли или дефолтные?
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 5 Гость(ей)