Вверх ↑
Ответов: 3940
#1: 2024-09-22 22:36:05 ЛС | профиль | цитата
Всем привет! По мотивам предыдущей темы искал способ решения проблемы. Немного порассуждаем в чем может быть дело, а так же хотелось бы собрать статистику по всем неработающим вариантам для возможного дальнейшего фикса данной проблемы. Не обещаю, что это поможет, но я смог в итоге зайти через Ethernet.

Имеем на старте:
MSI Z690 EDGE WIFI - обычная Z690 материнка с возможностью подключать WiFi антенну.
Java 8 - JRE 1.8 u171

При запуске игры получаем сразу несколько ошибок в различных логах, после чего Ethernet отваливается без признаков неисправности. Первая ошибка по самой Java.
Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

Определенные версии Java 8 перестали создавать папку Prefs в реестре при установке.

Интернет писал(а):
Проблема заключалась в исходном коде JDK для WindowsPreferences.java. В этом классе оба узла userRoot и systemRoot были объявлены статическими, как в:
/**
* User root node.
*/
static final Preferences userRoot =
new WindowsPreferences(USER_ROOT_NATIVE_HANDLE, WINDOWS_ROOT_PATH);

/**
* System root node.
*/
static final Preferences systemRoot =
new WindowsPreferences(SYSTEM_ROOT_NATIVE_HANDLE, WINDOWS_ROOT_PATH);
Это означает, что при первом обращении к классу будут инициированы обе статические переменные, и при этом будет предпринята попытка создать раздел реестра для HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs (= системного дерева), если он еще не существует.


Создадим, чтобы у нас не было подобных ошибок. В зависимости от разрядности ОС выбираем нужный путь.
Windows 32 bit: HKEY_LOCAL_MACHINE\Software\JavaSoft
Windows 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft

Запускаем regedit от имени Администратора, сверху после "Компьютер\" вставляем наш путь и переходим в раздел JavaSoft. ПКМ -› создать раздел -› "Prefs". Перезапускаем ПК.

Далее я пошел по пути изучения клиента, вдруг там есть какие-то особенности при создании сокетов. Надежда была, что на новых версиях чипсета поменялся какой-нибудь параметр, вроде версии сокета и поиск по клиенту не дал ничего. Значит с нашим MCGL все в порядке, едем дальше. Разработчиков и саппорт дергать не будем, решаем сами.

Я попробовал различные версии Java 8 Update 60, 202, 421. Все они не дают зайти в игру.

Далее я ради интереса пошел читать форумы материнки и решил глянуть какая версия драйверов у моей материнки. И случайно обнаружил апдейт Intel Network Drivers версии 2.1.4.2 от 2024-04-15. Устанавливаем и бежим проверять. И о чудо вместо ошибки подключения получаем в логе информацию о персонаже и заходим на сервер.

Резюмируем полученную информацию:
  • Клиент наш ни при чем
  • Устаревшая Java 8, к сожалению, тоже
  • Вендоры материнских плат имели какой-то баг в софте, который приводил к ошибкам с Java 8
  • Не все игроки мониторят обновления своего ПО (драйверы, биос и тд)
  • Советую поискать драйвер Intel Network Driver для вашей материнки не старше апреля 2024 года

    ! Если Вам не помогло подобное решение, просьба оставить заявку и отписаться мне в ЛС. Если будет много желающих - создам тему у себя в сообществе, где соберу статистику и вместе будем решать.

    Форма заявки

    Версия Java
    Материнская плата
    Версия Intel Network Driver (по возможности)
    Модель Ethernet интерфейса в материнке (по возможности)

    Заявки отправлять СЮДА.

    Данной информации мне хватит для того, чтобы собрать статистику по интерфейсам подключения, вендорам и драйверам. Огромная просьба проделать приведенные манипуляции сверху, чтобы найти другие кейсы подобной ошибки.

    Благодарю за внимание, увидимся на просторах Галактики! Всех благ.
     
  • карма: -3
    6
    Голосовали:Shredder, Marquis-de-Gramont, Izanagi, Moonlight_420, IceDragon, Miracle-
    Редактировалось 5 раз(а), последний 2024-09-22 22:43:37