FWGS / xash3d

DEPRECATED in favor of https://github.com/FWGS/xash3d-fwgs. Only bugfixes are accepted.
https://xash.su
GNU General Public License v3.0
553 stars 107 forks source link

Пропажа сервера из списка серверов после смены карты #280

Closed the-swank closed 6 years ago

the-swank commented 7 years ago

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

the-swank commented 7 years ago

Происходило подобное и раньше

mittorn commented 7 years ago

А сервер после этого по сети доступен?

the-swank commented 7 years ago

Да, работает как обычно, просто нет в списке серверов

the-swank commented 7 years ago

Глянул в GDB на баг, там NET_StringToAddrNB() в Master_Add() возвращает 2 постоянно и в итоге Master_Add() вызывается каждый кадр, но запрос на мастер сервер не отправляется, постоянно срабатывает условие res == 2

mittorn commented 7 years ago

2 означает ожидание. перечитаю код как будет время

the-swank commented 7 years ago

Проблема заключается в потоках, без USE_PTHREAD работает нормально

mittorn commented 7 years ago

Может, оно у тебя как-то по другому работает? Какие-то особееные потоковые проблемы? У себя не наблюдал проблем с ним. Можно конечно убрать его для дедика, на сервере это не так критично - нет подвисания интерфейса. Но ведь сервер тоже в идеале не должен подвисать. Ещё можно кэшировать результат ответа мастера, но тогда при смене адреса сервер придётся рестартить

mittorn commented 7 years ago

Попррбуй добавить volatile в состояния pthread, может оно оптимизировалось как-то?

mittorn commented 6 years ago

Fixed