Poloniex warnings/timeouts #71

Closed
opened 2019-04-14 23:46:43 -07:00 by sanitariu · 1 comment
sanitariu commented 2019-04-14 23:46:43 -07:00 (Migrated from github.com)

Very often i see poloniex warnings likes this one:

arbitrader_1 | 2019-04-15 05:01:46.556 WARN 1 --- [onPool-worker-5] c.r.arbitrader.service.TradingService : Slow Tickers! Fetched 9 tickers via parallelStream for Poloniex getTicker(): 9234 ms
arbitrader_1 | 2019-04-15 05:01:47.429 WARN 1 --- [ scheduling-1] si.mazi.rescu.ResponseReader : Noncritical error parsing error output: <html lang="en"><head>

Very often i see poloniex warnings likes this one: arbitrader_1 | 2019-04-15 05:01:46.556 WARN 1 --- [onPool-worker-5] c.r.arbitrader.service.TradingService : Slow Tickers! Fetched 9 tickers via parallelStream for Poloniex getTicker(): 9234 ms arbitrader_1 | 2019-04-15 05:01:47.429 WARN 1 --- [ scheduling-1] si.mazi.rescu.ResponseReader : Noncritical error parsing error output: <!DOCTYPE html><html lang="en"><head> <title>Poloniex - Bitcoin/Digital Asset Exchange</title> <meta charset="UTF-8"> <style>body{background-color:#04272a;font-family:HelveticaNeue-Light,Helvetica Neu... arbitrader_1 | arbitrader_1 | com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') arbitrader_1 | at [Source: (String)"<!DOCTYPE html><html lang="en"><head> <title>Poloniex - Bitcoin/Digital Asset Exchange</title> <meta charset="UTF-8"> <style>body{background-color:#04272a;font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-size:18px;margin:0;padding:0}a,body{color:#323a3c}a:hover{color:#a57211}h1{font-size:36px;font-weight:400;margin-top:0;padding:0;text-transform:uppercase}#logo{margin:35px 10px;max-width:230px;min-width:100px}#content{background-co"[truncated 9861 chars]; line: 1, column: 2] arbitrader_1 | at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804) arbitrader_1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:669) arbitrader_1 | at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:567) arbitrader_1 | at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1894) arbitrader_1 | at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:749) arbitrader_1 | at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4141) arbitrader_1 | at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4000) arbitrader_1 | at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3042) arbitrader_1 | at si.mazi.rescu.serialization.jackson.JacksonResponseReader.read(JacksonResponseReader.java:53) arbitrader_1 | at si.mazi.rescu.serialization.jackson.JacksonResponseReader.readException(JacksonResponseReader.java:58) arbitrader_1 | at si.mazi.rescu.ResponseReader.read(ResponseReader.java:82) arbitrader_1 | at si.mazi.rescu.RestInvocationHandler.mapInvocationResult(RestInvocationHandler.java:175) arbitrader_1 | at si.mazi.rescu.RestInvocationHandler.receiveAndMap(RestInvocationHandler.java:163) arbitrader_1 | at si.mazi.rescu.RestInvocationHandler.invoke(RestInvocationHandler.java:119) arbitrader_1 | at com.sun.proxy.$Proxy50.getTicker(Unknown Source) arbitrader_1 | at org.knowm.xchange.poloniex.service.PoloniexMarketDataServiceRaw.getPoloniexTicker(PoloniexMarketDataServiceRaw.java:56) arbitrader_1 | at org.knowm.xchange.poloniex.service.PoloniexMarketDataService.getTicker(PoloniexMarketDataService.java:37) arbitrader_1 | at com.r307.arbitrader.service.TradingService.lambda$getTickers$20(TradingService.java:732) arbitrader_1 | at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) arbitrader_1 | at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) arbitrader_1 | at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) arbitrader_1 | at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) arbitrader_1 | at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747) arbitrader_1 | at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721) arbitrader_1 | at java.util.stream.AbstractTask.compute(AbstractTask.java:316) arbitrader_1 | at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) arbitrader_1 | at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) arbitrader_1 | at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401) arbitrader_1 | at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734) arbitrader_1 | at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:714) arbitrader_1 | at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) arbitrader_1 | at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) arbitrader_1 | at com.r307.arbitrader.service.TradingService.getTickers(TradingService.java:756) arbitrader_1 | at com.r307.arbitrader.service.TradingService.lambda$tick$13(TradingService.java:275) arbitrader_1 | at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) arbitrader_1 | at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) arbitrader_1 | at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) arbitrader_1 | at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) arbitrader_1 | at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) arbitrader_1 | at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) arbitrader_1 | at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401) arbitrader_1 | at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734) arbitrader_1 | at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160) arbitrader_1 | at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174) arbitrader_1 | at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) arbitrader_1 | at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) arbitrader_1 | at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583) arbitrader_1 | at com.r307.arbitrader.service.TradingService.tick(TradingService.java:275) arbitrader_1 | at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) arbitrader_1 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) arbitrader_1 | at java.lang.reflect.Method.invoke(Method.java:498) arbitrader_1 | at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) arbitrader_1 | at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) arbitrader_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) arbitrader_1 | at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) arbitrader_1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) arbitrader_1 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) arbitrader_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) arbitrader_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) arbitrader_1 | at java.lang.Thread.run(Thread.java:748) arbitrader_1 | arbitrader_1 | 2019-04-15 05:22:53.902 WARN 1 --- [onPool-worker-3] c.r.arbitrader.service.TradingService : Slow Tickers! Fetched 16 tickers via getTickers() for Kraken in 4580 ms After that programme continues working. Seems like its not critical.
scionaltera commented 2019-04-15 08:40:35 -07:00 (Migrated from github.com)

Yeah, I get those too. A lot of the exchanges don't seem to have quite enough capacity for their APIs, so they return error pages pretty frequently. The error pages are HTML instead of JSON so the JSON parser doesn't know what to do with them. I need to catch those and print a more friendly warning message.

This looks like a duplicate of #62.

Yeah, I get those too. A lot of the exchanges don't seem to have quite enough capacity for their APIs, so they return error pages pretty frequently. The error pages are HTML instead of JSON so the JSON parser doesn't know what to do with them. I need to catch those and print a more friendly warning message. This looks like a duplicate of #62.
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
scion/arbitrader#71
No description provided.