mediathekview / MediathekView

Das Programm MediathekView durchsucht die Online-Mediatheken verschiedener Sender
https://mediathekview.de
GNU General Public License v3.0
863 stars 95 forks source link

Netzwerkfehler in NAT64-Umgebung (MV14.0.0) #732

Closed DarkAyron closed 1 month ago

DarkAyron commented 6 months ago

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.

alex1702 commented 6 months ago

Guck ich mir an

derreisende77 commented 6 months ago

@DarkAyron Welche Version von MV nutzt Du und ist es die offizielle Binary? Ich gehe davon aus das Betriebssystem ist Windows?

DarkAyron commented 6 months ago

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)

derreisende77 commented 6 months ago

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:

ip_mode kann folgende Werte annehmen:

Damit solltest Du in der Lage sein MV auch mit einem reinen IPv6 System betreiben zu können.

derreisende77 commented 6 months ago

@DarkAyron Konntest Du die Modifikationen testen?

DarkAyron commented 6 months ago

Ich bin leider zur Zeit unterwegs. Ich teste es, sobald ich wieder zu Hause bin