gravitee-io / issues

Gravitee.io - API Platform - Issues
64 stars 26 forks source link

Error 500 when accessing API with rate limiting or quota plan #2114

Closed MLukman closed 5 years ago

MLukman commented 5 years ago

Expected Behavior

No error

Current Behavior

HTTP 500 response with the following exception captured in logs:

An error occurs in policy[quota] error[io.gravitee.gateway.policy.PolicyChainException: io.gravitee.gateway.policy.PolicyException: java.lang.reflect.InvocationTargetException
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:47)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:70)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:102)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:42)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.handle(AbstractStreamableProcessorChain.java:59)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.lambda$handle$1(AbstractStreamableProcessorChain.java:55)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:86)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.policy.apikey.ApiKeyPolicy.onRequest(ApiKeyPolicy.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:95)
    at io.gravitee.gateway.policy.impl.PolicyImpl.onRequest(PolicyImpl.java:50)
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:45)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:70)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:102)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:42)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.handle(AbstractStreamableProcessorChain.java:59)
    at io.gravitee.gateway.handlers.api.ApiReactorHandler.handleClientRequest(ApiReactorHandler.java:112)
    at io.gravitee.gateway.handlers.api.ApiReactorHandler.doHandle(ApiReactorHandler.java:98)
    at io.gravitee.gateway.reactor.handler.AbstractReactorHandler.handle(AbstractReactorHandler.java:92)
    at io.gravitee.gateway.reactor.handler.AbstractReactorHandler.handle(AbstractReactorHandler.java:41)
    at io.gravitee.gateway.reactor.impl.DefaultReactor.lambda$route$2(DefaultReactor.java:101)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.handle(AbstractProcessorChain.java:46)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.lambda$handle$0(AbstractProcessorChain.java:41)
    at io.gravitee.gateway.reactor.processor.transaction.TransactionProcessor.handle(TransactionProcessor.java:55)
    at io.gravitee.gateway.reactor.processor.transaction.TransactionProcessor.handle(TransactionProcessor.java:29)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.handle(AbstractProcessorChain.java:44)
    at io.gravitee.gateway.reactor.impl.DefaultReactor.route(DefaultReactor.java:108)
    at io.gravitee.gateway.standalone.vertx.VertxReactorHandler.handle(VertxReactorHandler.java:42)
    at io.gravitee.gateway.standalone.vertx.VertxReactorHandler.handle(VertxReactorHandler.java:29)
    at io.vertx.core.http.impl.HttpServerRequestImpl.handleBegin(HttpServerRequestImpl.java:150)
    at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:129)
    at io.vertx.core.net.impl.ConnectionBase.handleRead(ConnectionBase.java:390)
    at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:320)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
    at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:188)
    at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:174)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.vertx.core.http.impl.Http1xUpgradeToH2CHandler.channelRead(Http1xUpgradeToH2CHandler.java:98)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:61)
    at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)
Caused by: io.gravitee.gateway.policy.PolicyException: java.lang.reflect.InvocationTargetException
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:97)
    at io.gravitee.gateway.policy.impl.PolicyImpl.onRequest(PolicyImpl.java:50)
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:45)
    ... 70 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:95)
    ... 72 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.ratelimit.api.RateLimitService' available
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:343)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123)
    at io.gravitee.gateway.reactor.handler.context.ReactableExecutionContext.getComponent(ReactableExecutionContext.java:106)
    at io.gravitee.policy.quota.QuotaPolicy.onRequest(QuotaPolicy.java:81)
    ... 77 more

Steps to Reproduce (for bugs)

  1. Create a new API (or use existing one)
  2. Create and deploy a new plan using API key with rate limit (try 100 request/minute)
  3. Subscribe to the plan and approve it
  4. Call the API using the API key
  5. API returns error 500
  6. If remove the rate limit & redeploy, the API call will be successful

Your Environment

blackstrip commented 5 years ago

Hi me too, did u solved this?

aelamrani commented 5 years ago

Hi, do you have errors on logs before this stacktrace? Is the plugin gravitee-gateway-services-ratelimit is deployed on the gateway?

blackstrip commented 5 years ago

Hi aelamrani,

Thx for your reply.

Everythins is ok before i add the rate-limit or quota policies in the API. I make many search for this, but i still dont know how to slove this.

My Environment

Version used: 1.25.2(docker) Browser Name and version: Chrome (Management UI) Operating System and version: Mac OSX

I think the plugin is deployed:


# When defining rate-limiting policy, the gateway has to store data to share with other gateway instances.
# In this example, we are using MongoDB to store counters.                                                
ratelimit:                                                                                                
type: mongodb                                                                                           
mongodb:                                                                                                
uri: mongodb://${ds.mongodb.host}/${ds.mongodb.dbname}                                                

cache:
type: ehcache


Log:
```txt
An error occurs in policy[quota] error[io.gravitee.gateway.policy.PolicyChainException: io.gravitee.gateway.policy.PolicyException: java.lang.reflect.InvocationTargetException
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:47)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:70)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.policy.ipfiltering.IPFilteringPolicy.onRequest(IPFilteringPolicy.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:95)
    at io.gravitee.gateway.policy.impl.PolicyImpl.onRequest(PolicyImpl.java:50)
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:45)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:70)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:102)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:42)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.handle(AbstractStreamableProcessorChain.java:59)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.lambda$handle$1(AbstractStreamableProcessorChain.java:55)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:86)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:102)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:42)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.handle(AbstractStreamableProcessorChain.java:59)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.lambda$handle$1(AbstractStreamableProcessorChain.java:55)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:86)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.policy.apikey.ApiKeyPolicy.onRequest(ApiKeyPolicy.java:95)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:95)
    at io.gravitee.gateway.policy.impl.PolicyImpl.onRequest(PolicyImpl.java:50)
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:45)
    at io.gravitee.gateway.policy.impl.PolicyChain.doNext(PolicyChain.java:70)
    at io.gravitee.gateway.policy.impl.StreamablePolicyChain.doNext(StreamablePolicyChain.java:54)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:102)
    at io.gravitee.gateway.policy.impl.PolicyChain.handle(PolicyChain.java:42)
    at io.gravitee.gateway.core.processor.chain.AbstractStreamableProcessorChain.handle(AbstractStreamableProcessorChain.java:59)
    at io.gravitee.gateway.handlers.api.ApiReactorHandler.handleClientRequest(ApiReactorHandler.java:106)
    at io.gravitee.gateway.handlers.api.ApiReactorHandler.doHandle(ApiReactorHandler.java:88)
    at io.gravitee.gateway.reactor.handler.AbstractReactorHandler.handle(AbstractReactorHandler.java:92)
    at io.gravitee.gateway.reactor.handler.AbstractReactorHandler.handle(AbstractReactorHandler.java:41)
    at io.gravitee.gateway.reactor.impl.DefaultReactor.lambda$route$2(DefaultReactor.java:98)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.handle(AbstractProcessorChain.java:46)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.lambda$handle$0(AbstractProcessorChain.java:41)
    at io.gravitee.gateway.reactor.processor.transaction.TransactionProcessor.handle(TransactionProcessor.java:55)
    at io.gravitee.gateway.reactor.processor.transaction.TransactionProcessor.handle(TransactionProcessor.java:29)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.handle(AbstractProcessorChain.java:44)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.lambda$handle$0(AbstractProcessorChain.java:41)
    at io.gravitee.gateway.reactor.processor.forward.XForwardForProcessor.handle(XForwardForProcessor.java:55)
    at io.gravitee.gateway.reactor.processor.forward.XForwardForProcessor.handle(XForwardForProcessor.java:30)
    at io.gravitee.gateway.core.processor.chain.AbstractProcessorChain.handle(AbstractProcessorChain.java:44)
    at io.gravitee.gateway.reactor.impl.DefaultReactor.route(DefaultReactor.java:105)
    at io.gravitee.gateway.standalone.vertx.VertxReactorHandler.handle(VertxReactorHandler.java:42)
    at io.gravitee.gateway.standalone.vertx.VertxReactorHandler.handle(VertxReactorHandler.java:29)
    at io.vertx.core.http.impl.HttpServerRequestImpl.handleBegin(HttpServerRequestImpl.java:150)
    at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:129)
    at io.vertx.core.net.impl.ConnectionBase.handleRead(ConnectionBase.java:390)
    at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:320)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
    at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:188)
    at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:174)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.vertx.core.http.impl.Http1xUpgradeToH2CHandler.channelRead(Http1xUpgradeToH2CHandler.java:98)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.vertx.core.http.impl.Http1xOrH2CHandler.end(Http1xOrH2CHandler.java:61)
    at io.vertx.core.http.impl.Http1xOrH2CHandler.channelRead(Http1xOrH2CHandler.java:38)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.lang.Thread.run(Thread.java:748)
Caused by: io.gravitee.gateway.policy.PolicyException: java.lang.reflect.InvocationTargetException
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:97)
    at io.gravitee.gateway.policy.impl.PolicyImpl.onRequest(PolicyImpl.java:50)
    at io.gravitee.gateway.policy.impl.RequestPolicyChain.execute(RequestPolicyChain.java:45)
    ... 89 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.gravitee.gateway.policy.impl.PolicyImpl.invoke(PolicyImpl.java:95)
    ... 91 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.ratelimit.api.RateLimitService' available
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:343)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123)
    at io.gravitee.gateway.reactor.handler.context.ReactableExecutionContext.getComponent(ReactableExecutionContext.java:106)
    at io.gravitee.policy.quota.QuotaPolicy.onRequest(QuotaPolicy.java:84)
    ... 96 more
]
brasseld commented 5 years ago

The rate-limit repository configuration seems to be wrong.

Please post the log of the gateway to investigate.

Regards,

blackstrip commented 5 years ago

Hi brasseld,

thx for your reply. Yes, you are right.

there is some log maybe found the problem:

02:28:18.136 [graviteeio-node] [] INFO  i.g.p.d.i.ServiceDiscoveryPluginHandler - Register a new service discovery: consul-service-discovery [io.gravitee.discovery.consul.ConsulServiceDiscovery]
02:28:18.139 [graviteeio-node] [] INFO  i.g.p.c.internal.PluginRegistryImpl - Plugins have been loaded and installed.
02:28:18.139 [graviteeio-node] [] INFO  i.g.g.standalone.node.GatewayNode -     Starting component: ServiceManager
02:28:18.139 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Plugins - Services Manager
02:28:18.139 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Node Health-check service
02:28:18.139 [graviteeio-node] [] INFO  i.g.n.m.h.v.e.ManagementEndpointManagerImpl - Register a new endpoint for Management API: GET /health [io.gravitee.node.service.healthcheck.management.HealthcheckManagementEndpoint]
02:28:18.140 [graviteeio-node] [] INFO  i.g.n.s.healthcheck.ProbesLoader - Loading instances for type io.gravitee.node.api.healthcheck.Probe
02:28:18.143 [graviteeio-node] [] ERROR i.g.n.p.s.impl.ServiceManagerImpl - Unexpected error while starting service
java.lang.IllegalArgumentException: Cannot instantiate interface io.gravitee.node.api.healthcheck.Probe : io.gravitee.gateway.repository.healthcheck.RateLimitRepositoryProbe
        at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:96)
        at io.gravitee.common.spring.factory.SpringFactoriesLoader.getSpringFactoriesInstances(SpringFactoriesLoader.java:70)
        at io.gravitee.common.spring.factory.SpringFactoriesLoader.getFactoriesInstances(SpringFactoriesLoader.java:57)
        at io.gravitee.node.service.healthcheck.ProbesLoader.getProbes(ProbesLoader.java:36)
        at io.gravitee.node.service.healthcheck.NodeHealthcheckService.doStart(NodeHealthcheckService.java:43)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.plugins.service.impl.ServiceManagerImpl.doStart(ServiceManagerImpl.java:47)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.container.AbstractNode.doStart(AbstractNode.java:74)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.container.AbstractContainer.doStart(AbstractContainer.java:89)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at io.gravitee.gateway.standalone.boostrap.Bootstrap.start(Bootstrap.java:162)
        at io.gravitee.gateway.standalone.boostrap.Bootstrap.main(Bootstrap.java:171)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'io.gravitee.gateway.repository.healthcheck.RateLimitRepositoryProbe': Unsatisfied dependency expressed through field 'rateLimitRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.ratelimit.api.RateLimitRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1395)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBean(AbstractAutowireCapableBeanFactory.java:316)
        at io.gravitee.common.spring.factory.SpringFactoriesLoader.createSpringFactoriesInstances(SpringFactoriesLoader.java:89)
        ... 17 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.ratelimit.api.RateLimitRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1654)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1213)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1167)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
        ... 22 common frames omitted
02:28:18.143 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Gateway Sync Service
02:28:18.143 [graviteeio-node] [] INFO  i.g.g.s.sync.ScheduledSyncService - Sync service has been initialized with cron [*/5 * * * * *]
02:28:18.143 [graviteeio-node] [] INFO  i.g.g.s.sync.ScheduledSyncService - Associate a new HTTP handler on /sync
02:28:18.153 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Health-check service
02:28:18.157 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Endpoints Discovery
02:28:18.158 [vert.x-eventloop-thread-3] [] INFO  i.g.c.event.impl.EventManagerImpl - Register new listener EndpointHealthcheckVerticle for event type class io.gravitee.gateway.reactor.ReactorEvent
02:28:18.161 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Subscriptions cache repository
02:28:18.162 [graviteeio-node] [] INFO  i.g.g.s.s.SubscriptionsCacheService - Overriding subscription repository implementation with a cached subscription repository
02:28:18.162 [vert.x-eventloop-thread-5] [] INFO  i.g.c.event.impl.EventManagerImpl - Register new listener EndpointDiscoveryVerticle for event type class io.gravitee.gateway.reactor.ReactorEvent
02:28:18.163 [graviteeio-node] [] INFO  i.g.c.event.impl.EventManagerImpl - Register new listener SubscriptionsCacheService for event type class io.gravitee.gateway.reactor.ReactorEvent
02:28:18.164 [graviteeio-node] [] INFO  i.g.g.s.s.SubscriptionsCacheService - Associate a new HTTP handler on /subscriptions
02:28:18.166 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Gateway Heartbeat
02:28:18.166 [graviteeio-node] [] INFO  i.g.g.s.hearbeat.HeartbeatService - Start gateway monitor
02:28:18.277 [graviteeio-node] [] INFO  org.mongodb.driver.connection - Opened connection [connectionId{localValue:7, serverValue:37}] to 172.17.0.1:27017
02:28:18.297 [graviteeio-node] [] INFO  i.g.g.s.hearbeat.HeartbeatService - Monitoring scheduled with fixed delay 5000 MILLISECONDS 
02:28:18.297 [graviteeio-node] [] INFO  i.g.g.s.hearbeat.HeartbeatService - Start gateway monitor : DONE
02:28:18.297 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service API keys cache repository
02:28:18.297 [graviteeio-node] [] INFO  i.g.g.s.a.ApiKeysCacheService - Overriding API key repository implementation with cached API Key repository
02:28:18.298 [graviteeio-node] [] INFO  i.g.c.event.impl.EventManagerImpl - Register new listener ApiKeysCacheService for event type class io.gravitee.gateway.reactor.ReactorEvent
02:28:18.300 [graviteeio-node] [] INFO  i.g.g.s.a.ApiKeysCacheService - Associate a new HTTP handler on /apikeys
02:28:18.302 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Asynchronous Rate Limit proxy
02:28:18.303 [graviteeio-node] [] ERROR i.g.n.p.s.impl.ServiceManagerImpl - Unexpected error while starting service
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.gravitee.repository.ratelimit.api.RateLimitRepository' available
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:343)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:335)
        at io.gravitee.gateway.services.ratelimit.AsyncRateLimitService.doStart(AsyncRateLimitService.java:71)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.plugins.service.impl.ServiceManagerImpl.doStart(ServiceManagerImpl.java:47)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.container.AbstractNode.doStart(AbstractNode.java:74)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at io.gravitee.node.container.AbstractContainer.doStart(AbstractContainer.java:89)
        at io.gravitee.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at io.gravitee.gateway.standalone.boostrap.Bootstrap.start(Bootstrap.java:162)
        at io.gravitee.gateway.standalone.boostrap.Bootstrap.main(Bootstrap.java:171)
02:28:18.303 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Monitoring Service
02:28:18.305 [graviteeio-node] [] INFO  i.g.n.s.monitoring.MonitoringService - Node monitoring scheduled with fixed delay 5000 MILLISECONDS 
02:28:18.305 [graviteeio-node] [] INFO  i.g.n.m.h.v.e.ManagementEndpointManagerImpl - Register a new endpoint for Management API: GET /monitor [io.gravitee.node.service.monitoring.management.MonitorManagementEndpoint]
02:28:18.305 [graviteeio-node] [] INFO  i.g.g.standalone.node.GatewayNode -     Starting component: ManagementService
02:28:18.305 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Node Management API service
02:28:18.306 [graviteeio-node] [] INFO  i.g.g.standalone.node.GatewayNode -     Starting component: ReporterManager
02:28:18.307 [vert.x-eventloop-thread-7] [] INFO  i.g.n.m.h.v.v.ManagementVerticle - Start HTTP listener for Node Management API
02:28:18.307 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Reporter service
02:28:18.308 [graviteeio-node] [] INFO  i.g.g.standalone.node.GatewayNode -     Starting component: AlertEngineService
02:28:18.308 [graviteeio-node] [] INFO  i.g.common.service.AbstractService - Initializing service Alert Engine service
02:28:18.308 [graviteeio-node] [] INFO  i.g.p.a.i.AlertEngineServiceImpl -      There is no alert to start
02:28:18.308 [graviteeio-node] [] INFO  i.g.g.standalone.node.GatewayNode - Gravitee.io - API Gateway id[303abd77-55a9-4af2-babd-7755a93af2b7] version[1.25.2] pid[1] build[506#6329ac7f1e22867e99489b63bff036e8283374e9] jvm[Oracle Corporation/OpenJDK 64-Bit Server VM/25.181-b13] started in 5520 ms.
NicolasGeraud commented 5 years ago

hi @blackstrip please can you put the full boostrap log, from the beginning?

blackstrip commented 5 years ago

Hi @NicolasGeraud ,

thx reply. sorry gentlemen, I think it was my mistake, i haven't change the mongodb settings to correct host. now it's all work fine when i changed it.

thanks very much, all of you guys, i love Gravitee.

# Referenced properties
ds:
  mongodb:
    dbname: gravitee
    # host: localhost      <--- incorrect
    host: 172.17.0.1   <--- this is correct
    port: 27017
  elastic:
    host: 172.17.0.1
    port: 9200
aelamrani commented 5 years ago

Thanks for the feedback i'm closing the issue