Closed the-swank closed 6 years ago
Происходило подобное и раньше
А сервер после этого по сети доступен?
Да, работает как обычно, просто нет в списке серверов
Глянул в GDB на баг, там NET_StringToAddrNB() в Master_Add() возвращает 2 постоянно и в итоге Master_Add() вызывается каждый кадр, но запрос на мастер сервер не отправляется, постоянно срабатывает условие res == 2
2 означает ожидание. перечитаю код как будет время
Проблема заключается в потоках, без USE_PTHREAD работает нормально
Может, оно у тебя как-то по другому работает? Какие-то особееные потоковые проблемы? У себя не наблюдал проблем с ним. Можно конечно убрать его для дедика, на сервере это не так критично - нет подвисания интерфейса. Но ведь сервер тоже в идеале не должен подвисать. Ещё можно кэшировать результат ответа мастера, но тогда при смене адреса сервер придётся рестартить
Попррбуй добавить volatile в состояния pthread, может оно оптимизировалось как-то?
Fixed
Сервер пропал из списка серверов после перезагрузки на другую карту, после его перезагрузки было в логе сообщение о добавлении сервера в список серверов, но в списке серверов он так и не появился, спустя 10 минут ожидания нечего не изменилось, появился только после полной перезагрузки процесса сервера.