Suwayomi / Suwayomi-Server

A rewrite of Tachiyomi for the Desktop
Mozilla Public License 2.0
4.16k stars 207 forks source link

[Bug] http error 520 in reader and downloader #1107

Closed Kickunio closed 4 hours ago

Kickunio commented 4 hours ago

Device information

Steps to reproduce

  1. Read a manga from toonily (found this bug on this extension, but read on discord that there are also other extensions)
  2. After some time of reading (constant, without brakes, like reading many chapter concurrently) next chapters don't read
  3. If downloading after downloading several chapters, other not downloaded chapter will show up an error)

Expected behavior

Chapters download normally/ Chapters loads in reader normally

Actual behavior

Error 520

Other details

Tested it in tachimanga app on iOS and the problem didn't show up even after downloading 31 chapters at once( 1 concurrent download)

Download log:

`23:46:42.575 [DefaultDispatcher-worker-3] WARN suwayomi.tachidesk.manga.impl.download.Downloader source(5190569675461947007) - downloadChapter(Share Girlfriend (4983) - Chapter 50 - The End (31163) | state= Error, tries= 2, progress= 0.0)) -- failed due to

eu.kanade.tachiyomi.network.HttpException: HTTP error 520

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservableSuccess$lambda$1(OkHttpExtensions.kt:66)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservableSuccess$lambda$2(OkHttpExtensions.kt:63)

at rx.internal.util.ActionObserver.onNext(ActionObserver.java:39)

at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:96)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt$asObservable$1$requestArbiter$1.request(OkHttpExtensions.kt:39)

at rx.Subscriber.setProducer(Subscriber.java:211)

at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)

at rx.Subscriber.setProducer(Subscriber.java:205)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservable$lambda$0(OkHttpExtensions.kt:57)

at rx.Observable.unsafeSubscribe(Observable.java:10327)

at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)

at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)

at rx.Observable.unsafeSubscribe(Observable.java:10327)

at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)

at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)

at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)

at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)

at rx.Observable.subscribe(Observable.java:10423)

at rx.Observable.subscribe(Observable.java:10390)

at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitOne(RxCoroutineBridge.kt:28)

at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitSingle(RxCoroutineBridge.kt:22)

at eu.kanade.tachiyomi.source.online.HttpSource.getPageList$suspendImpl(HttpSource.kt:306)

at eu.kanade.tachiyomi.source.online.HttpSource.getPageList(HttpSource.kt)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.fetchPageList(ChapterForDownload.kt:116)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.asDownloadReady(ChapterForDownload.kt:73)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady(ChapterForDownload.kt:37)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady$default(ChapterForDownload.kt:30)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReadyByIndex(ChapterForDownload.kt:45)

at suwayomi.tachidesk.manga.impl.download.Downloader.run(Downloader.kt:127)

at suwayomi.tachidesk.manga.impl.download.Downloader.access$run(Downloader.kt:33)

at suwayomi.tachidesk.manga.impl.download.Downloader$run$1.invokeSuspend(Downloader.kt)

at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)

at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)

Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: okhttp3.Response.class

at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118)

at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:188)

at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:98)

... 33 common frames omitted`

Reader log: `23:57:25.922 [DefaultDispatcher-worker-12] ERROR suwayomi.tachidesk.graphql.AsDataFetcherResult -- asDataFetcherResult: failed due to

eu.kanade.tachiyomi.network.HttpException: HTTP error 520

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservableSuccess$lambda$1(OkHttpExtensions.kt:66)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservableSuccess$lambda$2(OkHttpExtensions.kt:63)

at rx.internal.util.ActionObserver.onNext(ActionObserver.java:39)

at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:96)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt$asObservable$1$requestArbiter$1.request(OkHttpExtensions.kt:39)

at rx.Subscriber.setProducer(Subscriber.java:211)

at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)

at rx.Subscriber.setProducer(Subscriber.java:205)

at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservable$lambda$0(OkHttpExtensions.kt:57)

at rx.Observable.unsafeSubscribe(Observable.java:10327)

at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)

at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)

at rx.Observable.unsafeSubscribe(Observable.java:10327)

at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)

at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)

at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)

at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)

at rx.Observable.subscribe(Observable.java:10423)

at rx.Observable.subscribe(Observable.java:10390)

at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitOne(RxCoroutineBridge.kt:28)

at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitSingle(RxCoroutineBridge.kt:22)

at eu.kanade.tachiyomi.source.online.HttpSource.getPageList$suspendImpl(HttpSource.kt:306)

at eu.kanade.tachiyomi.source.online.HttpSource.getPageList(HttpSource.kt)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.fetchPageList(ChapterForDownload.kt:116)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.asDownloadReady(ChapterForDownload.kt:73)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady(ChapterForDownload.kt:37)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady$default(ChapterForDownload.kt:30)

at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReadyById(ChapterForDownload.kt:40)

at suwayomi.tachidesk.graphql.mutations.ChapterMutation$fetchChapterPages$1.invokeSuspend(ChapterMutation.kt:240)

at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)

at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)

at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)

at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)

at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)

at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)

Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: okhttp3.Response.class

at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118)

at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:188)

at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:98)

... 33 common frames omitted`
github-actions[bot] commented 4 hours ago

@Kickunio this issue was automatically closed because: