Size: a a a

ReactiveX - русскоговорящее сообщество

2020 May 19

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
Denis Chuvasov
скорее всего копать в сторону backpressure
У подписки уже стоял onBackpressureBuffer(). Я пробовал еще onBackpressureBuffer(1000) и onBackpressureLatest(). Эффекта не дало.
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
iamthevoid
Гуглить пробовал? Я по мессейджу из ошибки сразу несколько вариантов нашёл
Пробовал. Выдает два варианта - оба как я понимаю баги в библиотеке. Обновлять библиотеку пока опасаюсь, код легаси, не мой, как бы что еще не сломалось.
Эксепшн происходит в Subscriber в методе onNext().
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Evgeny Cherkasov
Пробовал. Выдает два варианта - оба как я понимаю баги в библиотеке. Обновлять библиотеку пока опасаюсь, код легаси, не мой, как бы что еще не сломалось.
Эксепшн происходит в Subscriber в методе onNext().
полный стектрейс покажи. Лучше через гист
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
И, желательно, код
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
iamthevoid
полный стектрейс покажи. Лучше через гист
стектрейс вот:
05-18 15:17:45.866 5489-5602/com.test W/System.err: java.lang.IllegalStateException: more items arrived than were requested
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.producers.ProducerArbiter.produced(ProducerArbiter.java:98)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorConcat$ConcatInnerSubscriber.onNext(OperatorConcat.java:201)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at com.amazon.dynamicparser.DynamicParser$1.onRecipeCooked(DynamicParser.java:346)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at com.amazon.dynamicparser.DynamicParser.translateMapsToObjects(DynamicParser.java:632)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at com.amazon.dynamicparser.DynamicParser.lambda$cookRecipeObservable$0(DynamicParser.java:334)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at com.amazon.dynamicparser.DynamicParser.access$lambda$0(DynamicParser.java)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at com.amazon.dynamicparser.DynamicParser$$Lambda$1.call(Unknown Source)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:162)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:154)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable.unsafeSubscribe(Observable.java:8098)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorConcat$ConcatSubscriber.subscribeNext(OperatorConcat.java:172)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorConcat$ConcatSubscriber.onNext(OperatorConcat.java:136)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorConcat$ConcatSubscriber.onNext(OperatorConcat.java:79)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:54)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:46)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.util.ScalarSynchronousObservable$1.call(ScalarSynchronousObservable.java:35)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:162)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:154)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:162)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable$2.call(Observable.java:154)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.Observable.unsafeSubscribe(Observable.java:8098)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.operators.OperatorSubscribeOn$1$1.call(OperatorSubscribeOn.java:62)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 15:17:45.866 5489-5602/com.test W/System.err:     at java.lang.Thread.run(Thread.java:818)
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
извиняюсь с гистом дольше возиться
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
Код не знаю что конкретно показывать, там много всего наворочено, в разных файлах.
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Evgeny Cherkasov
извиняюсь с гистом дольше возиться
сомнительный аргумент ) Радует, что хотя бы в одно сообщение поместилось
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Первая RxJava, воу
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Давненько не видел
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
Там суть в том, что парсится массив мапов. Если в массиве 20 элементов, то на 18-ом стабильно отваливается
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Код всё таки хотелось бы посмотреть
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Ты же можешь в минимальном виде это воссоздать, не?
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
iamthevoid
Ты же можешь в минимальном виде это воссоздать, не?
Не, это не реально
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Я обычно, когда разбираюсь, как работает  rx пишу метод в test, который имитирует происходящее
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
сначала минимально, потом, если работает, более детализированно
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
пока не упадёт)
источник

АК

Артем Кулик... in ReactiveX - русскоговорящее сообщество
iamthevoid
сначала минимально, потом, если работает, более детализированно
Я наоборот) все полотно беру и отрубаю кочки пока не начнет работать)
источник

EC

Evgeny Cherkasov in ReactiveX - русскоговорящее сообщество
Тут длинная цепочка, сначала из сети данные загружаются, делается несколько преобразований, и вот на одном из них крашится. Не очень понимаю с какого конца тут тестировать это.
Проблема вроде как в самом rx.
Думал, может это частая проблема и есть какой то быстрый фикс.
Версия старая, и вроде были фиксы похожих проблем. Так что может еще имеет смысл просто обновить библиотеку на более новую, но какую конкретно версию не знаю.
источник

i

iamthevoid in ReactiveX - русскоговорящее сообщество
Evgeny Cherkasov
Тут длинная цепочка, сначала из сети данные загружаются, делается несколько преобразований, и вот на одном из них крашится. Не очень понимаю с какого конца тут тестировать это.
Проблема вроде как в самом rx.
Думал, может это частая проблема и есть какой то быстрый фикс.
Версия старая, и вроде были фиксы похожих проблем. Так что может еще имеет смысл просто обновить библиотеку на более новую, но какую конкретно версию не знаю.
Проблема в том, что проблема, с вероятностью 99.9% в коде. А если и нет, то без кода диагностировать не представляется возможным, надо понимать, что именно у тебя происходит. Поэтому у тебя выбор либо поделиться, либо закопаться самому. Ну можно заменить либу, конечно, но это слишком радикально.

Кстати, то что ты описал представляется довольно компактным. Зависит от преобразований, кончно, но это пайплайн в несколько строк и пара трансформеров.
источник