Netzwerkfehler in NAT64-Umgebung (MV14.0.0)
In DSlite Umgebung mit NAT64 tritt sofort nach dem Start von MediathekView folgender Fehler auf:
java.net.SocketException: Network is unreachable
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Net.java:580)
at java.base/sun.nio.ch.Net.connect(Net.java:569)
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:576)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
at java.base/java.net.Socket.connect(Socket.java:666)
at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
at okhttp3.internal.connection.ConnectPlan.connectSocket(ConnectPlan.kt:254)
at okhttp3.internal.connection.ConnectPlan.connectTcp(ConnectPlan.kt:128)
at okhttp3.internal.connection.SequentialExchangeFinder.find(SequentialExchangeFinder.kt:33)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:267)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:84)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:65)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:205)
at okhttp3.internal.connection.RealCall.execute(RealCall.kt:158)
at mediathek.filmlisten.FilmeLaden.hasNewRemoteFilmlist(FilmeLaden.java:101)
at mediathek.filmlisten.FilmeLaden.performUpdateCheck(FilmeLaden.java:162)
at mediathek.filmlisten.FilmeLaden.loadFilmlist(FilmeLaden.java:181)
at mediathek.mainwindow.MediathekGui.lambda$loadFilmlist$15(MediathekGui.java:479)
at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1810)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Suppressed: java.net.SocketException: Network is unreachable
... 34 more
Der Fehler lässt sich folgendermaßen reproduzieren:
Rechner an einen Router mit NAT64 anschließen, IPv6 und DNS-Server mit DNS64 konfigurieren, IPv4 abschalten. MediathekView starten.
Guck ich mir an
@DarkAyron Welche Version von MV nutzt Du und ist es die offizielle Binary? Ich gehe davon aus das Betriebssystem ist Windows?
Ich verwende die offizielle Version von https://mediathekview.de/download/ (MediathekView-latest-linux.tar.gz, sha1sum: b627e965acc0f47d91b4dd890b4941594dbb6c9b) Gestartet über den im Archiv enthaltenen Shellscript (MediathekView) Betriebssystem ist gentoo linux (no-multilib) Java ist openjdk 17.0.8.1_p1(17){tbz2}(17:30:46 10/01/24)(alsa cups doc jbootstrap source system-bootstrap -big-endian -debug -examples -headless-awt -javafx -lto -selinux -systemtap)
MV verwendet sein eigenes mitgeliefertes Java, da wir dadurch bessere Kontrolle haben. OOTB ist MV nicht für IPv6 Betrieb ausgelegt sondern auf IPv4 fixiert da wir in der Vergangenheit Probleme primär unter Windows damit hatten und das "feature" auf anderen Systemen keine Auswirkungen zeigte. Da Du Linux nutzt gehe ich davon aus dass das Ändern von Konfigurationsdateien bei dir keinen Angstschweiß erzeugt, denn dadurch solltest Du in der Lage sein, MV auch mit IPv6 bei dir betreiben zu können. Leider habe ich noch keine Einstellung dafür in den Einstellungen programmiert, werde es aber zeitnah integrieren.
Anleitung:
- Beende MV
- nano
~/.mediathek3/settings.xml - Füge dort nach Zeile 3 (
<application>) folgende Zeilen ein:
<networking>
<dns>
<ip_mode>system</ip_mode>
</dns>
</networking>
ip_mode kann folgende Werte annehmen:
system: Nutze OS-Vorgabenip_v6: Bevorzuge IPv6, nutze aber auch IPv4ip_v4: Bevorzuge IPv4, nutze aber auch IPv6ip_v6_only: Nutze nur IPv6, IPv4 wird ignoriertip_v4_only: Nutze nur IPv4, IPv6 wird ignoriert (Standard MV)
Damit solltest Du in der Lage sein MV auch mit einem reinen IPv6 System betreiben zu können.
@DarkAyron Konntest Du die Modifikationen testen?
Ich bin leider zur Zeit unterwegs. Ich teste es, sobald ich wieder zu Hause bin
Das Problem ist doch einfach, dass Java kein Happy Eyeballs kennt. Wenn IPv6 aktiviert ist, dann wird die Verbindung nur über IPv6 versucht. Wenn Leute da aber bei sich rumgespielt haben (IPv6 iSt BöSe!!!! /s), gibt es kein Fallback auf IPv4.
Anstatt die Leute dazu anzuhalten, ihre IPv6-Probleme zu beheben, hat man sich dann bei MV leider dazu entschieden, IPv6 per Default einfach zu deaktivieren.
Wurde mit Version 13.6 "eingeführt": https://mediathekview.de/changelog/13-6-0/