Crash on poloniex maintenance mode #261

Closed
opened 2020-11-15 02:31:32 -08:00 by sanitariu · 2 comments
sanitariu commented 2020-11-15 02:31:32 -08:00 (Migrated from github.com)

arbitrader $ docker-compose up
Starting arbitrader_arbitrader_1 ... done
Attaching to arbitrader_arbitrader_1
arbitrader_1 | Listening for transport dt_socket at address: 5005
arbitrader_1 |
arbitrader_1 | $$$$$$\ $$\ $$\ $$\ $$
arbitrader_1 | \ | _| | |
arbitrader_1 | / | $$$$$$\ $$$$$$$\ $$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$ | $$$$$$\ $$$$$$
arbitrader_1 | $$$$ | __\ _\ |_ _| $$\ _\ __ | __\ __$$
arbitrader_1 | __ | | \__| | | | | | _
|$$$ |/ |$$$$ | | _|
arbitrader_1 | | || | | | |\ | __ || | ____| |
arbitrader_1 | | | | $$$ | | $$ | | $$$ |$$$ |$$$$$\ |
arbitrader_1 | _
| _|_| _
/ _| _/ _| _| _| _____|_|
arbitrader_1 |
arbitrader_1 | 2020-11-15 10:29:19.725 INFO 1 --- [ main] com.r307.arbitrader.Arbitrader : Starting Arbitrader on 943aa89af536 with PID 1 (/opt/app/app.jar started by root in /)
arbitrader_1 | 2020-11-15 10:29:19.745 INFO 1 --- [ main] com.r307.arbitrader.Arbitrader : No active profile set, falling back to default profiles: default
arbitrader_1 | 2020-11-15 10:29:25.010 INFO 1 --- [ main] org.knowm.xchange.quoine.QuoineExchange : Calling Remote Init...
arbitrader_1 | 2020-11-15 10:29:25.012 INFO 1 --- [ main] org.knowm.xchange.quoine.QuoineExchange : No remote initialization implemented for Quoine. The exchange meta data for this exchange is loaded from a json file containing hard-coded exchange meta-data. This may or may not be OK for you, and you should understand exactly how this works. Each exchange can either 1) rely on the hard-coded json file that comes packaged with XChange's jar, 2) provide your own override json file, 3) properly implement the remoteInit() method for the exchange (please submit a pull request so the whole community can benefit) or 4) a combination of hard-coded JSON and remote API calls. For more info see: https://github.com/timmolter/XChange/wiki/Design-Notes#exchange-metadata
arbitrader_1 | 2020-11-15 10:29:27.008 INFO 1 --- [ main] o.k.xchange.poloniex.PoloniexExchange : Calling Remote Init...
arbitrader_1 | 2020-11-15 10:29:27.216 WARN 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tradingService': Invocation of init method failed; nested exception is org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403
arbitrader_1 | 2020-11-15 10:29:27.273 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
arbitrader_1 |
arbitrader_1 | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tradingService': Invocation of init method failed; nested exception is org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403
arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:415)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
arbitrader_1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
arbitrader_1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
arbitrader_1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
arbitrader_1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
arbitrader_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
arbitrader_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
arbitrader_1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
arbitrader_1 | at com.r307.arbitrader.Arbitrader.main(Arbitrader.java:13)
arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
arbitrader_1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
arbitrader_1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
arbitrader_1 | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
arbitrader_1 | Caused by: org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403
arbitrader_1 | at org.knowm.xchange.BaseExchange.applySpecification(BaseExchange.java:109)
arbitrader_1 | at org.knowm.xchange.ExchangeFactory.createExchange(ExchangeFactory.java:130)
arbitrader_1 | at com.r307.arbitrader.service.TradingService.lambda$connectExchanges$1(TradingService.java:145)
arbitrader_1 | at java.util.ArrayList.forEach(ArrayList.java:1259)
arbitrader_1 | at com.r307.arbitrader.service.TradingService.connectExchanges(TradingService.java:111)
arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389)
arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333)
arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157)
arbitrader_1 | ... 26 common frames omitted
arbitrader_1 | Caused by: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403
arbitrader_1 | at si.mazi.rescu.ResponseReader.read(ResponseReader.java:104)
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.$Proxy53.getCurrencyInfo(Unknown Source)
arbitrader_1 | at org.knowm.xchange.poloniex.service.PoloniexMarketDataServiceRaw.getPoloniexCurrencyInfo(PoloniexMarketDataServiceRaw.java:40)
arbitrader_1 | at org.knowm.xchange.poloniex.PoloniexExchange.remoteInit(PoloniexExchange.java:56)
arbitrader_1 | at org.knowm.xchange.BaseExchange.applySpecification(BaseExchange.java:107)
arbitrader_1 | ... 37 common frames omitted
arbitrader_1 |
arbitrader_arbitrader_1 exited with code 1

Is not it better for the software to stay running and check each 5 minutes or so if we have exchange connection instead
crashing ?
Currently i think poloniex is in maintenance mode and thats why it crashes.

arbitrader $ docker-compose up Starting arbitrader_arbitrader_1 ... done Attaching to arbitrader_arbitrader_1 arbitrader_1 | Listening for transport dt_socket at address: 5005 arbitrader_1 | arbitrader_1 | $$$$$$\ $$\ $$\ $$\ $$\ arbitrader_1 | $$ __$$\ $$ | \__| $$ | $$ | arbitrader_1 | $$ / $$ | $$$$$$\ $$$$$$$\ $$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$$ | $$$$$$\ $$$$$$\ arbitrader_1 | $$$$$$$$ |$$ __$$\ $$ __$$\ $$ |\_$$ _| $$ __$$\ \____$$\ $$ __$$ |$$ __$$\ $$ __$$\ arbitrader_1 | $$ __$$ |$$ | \__|$$ | $$ |$$ | $$ | $$ | \__|$$$$$$$ |$$ / $$ |$$$$$$$$ |$$ | \__| arbitrader_1 | $$ | $$ |$$ | $$ | $$ |$$ | $$ |$$\ $$ | $$ __$$ |$$ | $$ |$$ ____|$$ | arbitrader_1 | $$ | $$ |$$ | $$$$$$$ |$$ | \$$$$ |$$ | \$$$$$$$ |\$$$$$$$ |\$$$$$$$\ $$ | arbitrader_1 | \__| \__|\__| \_______/ \__| \____/ \__| \_______| \_______| \_______|\__| arbitrader_1 | arbitrader_1 | 2020-11-15 10:29:19.725 INFO 1 --- [ main] com.r307.arbitrader.Arbitrader : Starting Arbitrader on 943aa89af536 with PID 1 (/opt/app/app.jar started by root in /) arbitrader_1 | 2020-11-15 10:29:19.745 INFO 1 --- [ main] com.r307.arbitrader.Arbitrader : No active profile set, falling back to default profiles: default arbitrader_1 | 2020-11-15 10:29:25.010 INFO 1 --- [ main] org.knowm.xchange.quoine.QuoineExchange : Calling Remote Init... arbitrader_1 | 2020-11-15 10:29:25.012 INFO 1 --- [ main] org.knowm.xchange.quoine.QuoineExchange : No remote initialization implemented for Quoine. The exchange meta data for this exchange is loaded from a json file containing hard-coded exchange meta-data. This may or may not be OK for you, and you should understand exactly how this works. Each exchange can either 1) rely on the hard-coded json file that comes packaged with XChange's jar, 2) provide your own override json file, 3) properly implement the `remoteInit()` method for the exchange (please submit a pull request so the whole community can benefit) or 4) a combination of hard-coded JSON and remote API calls. For more info see: https://github.com/timmolter/XChange/wiki/Design-Notes#exchange-metadata arbitrader_1 | 2020-11-15 10:29:27.008 INFO 1 --- [ main] o.k.xchange.poloniex.PoloniexExchange : Calling Remote Init... arbitrader_1 | 2020-11-15 10:29:27.216 WARN 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tradingService': Invocation of init method failed; nested exception is org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403 arbitrader_1 | 2020-11-15 10:29:27.273 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed arbitrader_1 | arbitrader_1 | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tradingService': Invocation of init method failed; nested exception is org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403 arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:415) arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) arbitrader_1 | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) arbitrader_1 | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) arbitrader_1 | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) arbitrader_1 | at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) arbitrader_1 | at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) arbitrader_1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) arbitrader_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) arbitrader_1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) arbitrader_1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405) arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) arbitrader_1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) arbitrader_1 | at com.r307.arbitrader.Arbitrader.main(Arbitrader.java:13) arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) arbitrader_1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:107) arbitrader_1 | at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) arbitrader_1 | at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) arbitrader_1 | Caused by: org.knowm.xchange.exceptions.ExchangeException: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403 arbitrader_1 | at org.knowm.xchange.BaseExchange.applySpecification(BaseExchange.java:109) arbitrader_1 | at org.knowm.xchange.ExchangeFactory.createExchange(ExchangeFactory.java:130) arbitrader_1 | at com.r307.arbitrader.service.TradingService.lambda$connectExchanges$1(TradingService.java:145) arbitrader_1 | at java.util.ArrayList.forEach(ArrayList.java:1259) arbitrader_1 | at com.r307.arbitrader.service.TradingService.connectExchanges(TradingService.java:111) arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) arbitrader_1 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 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.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) arbitrader_1 | at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) arbitrader_1 | ... 26 common frames omitted arbitrader_1 | Caused by: si.mazi.rescu.HttpStatusIOException: HTTP status code was not OK: 403 arbitrader_1 | at si.mazi.rescu.ResponseReader.read(ResponseReader.java:104) 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.$Proxy53.getCurrencyInfo(Unknown Source) arbitrader_1 | at org.knowm.xchange.poloniex.service.PoloniexMarketDataServiceRaw.getPoloniexCurrencyInfo(PoloniexMarketDataServiceRaw.java:40) arbitrader_1 | at org.knowm.xchange.poloniex.PoloniexExchange.remoteInit(PoloniexExchange.java:56) arbitrader_1 | at org.knowm.xchange.BaseExchange.applySpecification(BaseExchange.java:107) arbitrader_1 | ... 37 common frames omitted arbitrader_1 | arbitrader_arbitrader_1 exited with code 1 Is not it better for the software to stay running and check each 5 minutes or so if we have exchange connection instead crashing ? Currently i think poloniex is in maintenance mode and thats why it crashes.
scionaltera commented 2020-11-15 09:26:33 -08:00 (Migrated from github.com)

This looks like a duplicate of #151 . Arbitrader will throw an exception on startup if it can’t connect to any of its exchanges.

This looks like a duplicate of #151 . Arbitrader will throw an exception on startup if it can’t connect to any of its exchanges.
sanitariu commented 2020-11-15 11:26:08 -08:00 (Migrated from github.com)

I commented #151

I commented #151
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#261
No description provided.