Java Networking Probleme mit Debian (testing)
Java, Linux/OpenSource, ubuntuusers.de Februar 2nd, 2010Wer unter besonders schwer zu diagnostizierenden Fehlern unter Debian testing leidet, die im Zusammenhang mit Java oder Java Applikationen auftauchen, könnte von dem Bug 560056 erwischt worden sein, den das netbase Paket eingeführt hat.
Dabei wird das sysctl Setting
net.ipv6.bindv6only=1 in /etc/sysctl.d/bindv6only.conf
gesetzt, welches dann z.B. Socket Exceptions (invalid argument) nach sich zieht.
Eine schnelle Lösung des Problems:
Die Datei /etc/sysctl.d/bindv6only.conf
editieren und das Setting auf „0“ umstellen. Danach:
sudo invoke-rc.d procps restart
Der Fehler könnte auch Ubuntu Systeme betreffen, die eine enstprechende Kerneleinstellung haben. Als Alternative für das Kernelsetting kann man bei Java Anwendungen als Parameter
-Djava.net.preferIPv4Stack=true
setzen.
Wie man an einem beispielhaften Stacktrace von einem Atlassian Confluence Wiki sehen kann, ist der Fehler relativ schlecht zuzuordnen:
02.02.2010 18:19:29 org.apache.catalina.core.StandardServer await SCHWERWIEGEND: StandardServer.await: create[8000]: java.net.SocketException: Invalid argument at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365) at java.net.ServerSocket.bind(ServerSocket.java:319) at java.net.ServerSocket.<init>(ServerSocket.java:185) at org.apache.catalina.core.StandardServer.await(StandardServer.java:373) at org.apache.catalina.startup.Catalina.await(Catalina.java:630) at org.apache.catalina.startup.Catalina.start(Catalina.java:590) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Neue Kommentare