Solche Fehler können einen in den Wahnsinn treiben, weil sie zunächst auf eine völlig falsche Spur lenken. Vor kurzem hatte ich das Problem das eine bis dato einwandfrei laufende Java-Applikation plötzlich ihren Dienst unter Debian Linux verweigerte. Die Fehlermeldung ..
java.net.SocketException: Network is unreachable
deutet auf Netzwerkprobleme hin, was aber durch das restliche System nicht bestätigt werden konnte. Alle anderen System-dienste arbeiteten normal und waren ohne Probleme erreichbar. Dadurch wird schnell klar, das das eigentliche Problem irgendwo bei Java zu suchen ist. Was eigentlich auch ungewöhnlich ist, da ich an dieser Stelle meist das original Sun (nun Oracle) JDK einsetze, da es mit dem OpenJDK leider immer noch vereinzelt Kompatibilitätsprobleme gibt.
Auf der Suche nach Lösungen wurde ich dann aber auch schnell bei den „üblichen Verdächtigen“ wie der Debian Fehlerdatenbank fündig. Dort erfährt man unter Bug 560044 das mit dem Release von Debian Squeeze eine Default-Einstellung im Paket Netbase geändert wurde, die den Aufbau von Netzwerk-Sockets steuert.
Die Auswirkungen auf JAVA-Applikationen sind gravierend, da nun keine Verbindungen zu IPv4-Adressen mehr aufgebaut werden können. Netterweise wird in dem Bugreport auch gleich ein Hotfix für das Problem mitgeliefert. Im wesentlichen muss man dazu die Config-Datei bearbeiten.
sudo sed -i 's/net.ipv6.bindv6only\ =\ 1/net.ipv6.bindv6only\ =\ 0/' /etc/sysctl.d/bindv6only.conf sudo invoke-rc.d procps restart
Danach sollten alle JAVA-Apps wieder gewohnt auf IPv4-IP-Adressen zugreifen können.
Keine Kommentare möglich.