MServer icon indicating copy to clipboard operation
MServer copied to clipboard

FUNK: Ermittlung der SessionId scheitert in langen Lauf

Open pidoubleyou opened this issue 1 year ago • 0 comments

Der Funk-Crawler liefert im langen Lauf öfters keine Ergebnisse. Im 3 Uhr-Lauf funktioniert es meist, im 7 Uhr-Lauf manchmal und im 20 Uhr-Lauf eigentlich nie.

Ursache ist eine SocketTimeoutException bei der Ermittlung der SessionId in NexxCloudSessionInitiationTask.java:46

Caused by: jakarta.ws.rs.ProcessingException: java.net.SocketTimeoutException: Read timed out at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:269) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:297) at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662) at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697) at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691) at org.glassfish.jersey.internal.Errors.process(Errors.java:292) at org.glassfish.jersey.internal.Errors.process(Errors.java:274) at org.glassfish.jersey.internal.Errors.process(Errors.java:205) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390) at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:439) at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:345) at mServer.crawler.sender.funk.tasks.NexxCloudSessionInitiationTask.call(NexxCloudSessionInitiationTask.java:46) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.(FunkVideosToFilmsTask.java:52) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.createNewOwnInstance(FunkVideosToFilmsTask.java:178) at mServer.crawler.sender.funk.tasks.FunkVideosToFilmsTask.createNewOwnInstance(FunkVideosToFilmsTask.java:29) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:69) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:71) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:23) at java.base/java.util.concurrent.RecursiveTask.exec(RecursiveTask.java:100) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:436) at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:670) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:72) at mServer.crawler.sender.base.AbstractRecursivConverterTask.compute(AbstractRecursivConverterTask.java:23) at java.base/java.util.concurrent.RecursiveTask.exec(RecursiveTask.java:100) at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) at java.base/java.util.concurrent.ForkJoinTask.awaitDone(ForkJoinTask.java:436) at java.base/java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:670) ... 8 more Caused by: java.net.SocketTimeoutException: Read timed out at java.base/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:283) at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:309) at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350) at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803) at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966) at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:478) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:472) at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70) at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1460) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1064) at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:244) at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:284) at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:343) at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:824) at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:759) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1688) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529) at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:378) at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:267) ... 37 more

Im langen Lauf werden ca. 15000 Einträge durchsucht. Durch die Parallelisierung der Requests werden viele neue SessionIds kurz hintereinander ermittelt. Vermutlich ist das das Problem.

pidoubleyou avatar Mar 12 '23 14:03 pidoubleyou