redisson: Occasional ERROR:Search domain query failed.
Expected behavior
项目能够顺利启动。
Actual behavior
偶尔会抛出Search domain query failed.异常信息导致项目启动不了 Steps to reproduce or test case 项目采用的spring boot1.5.3。
Redis version
redis 4.0.2
Redisson version
Redisson 3.6.5 Redisson configuration
application.yml
redisson:
address: redis://www.chasel.com:6279
timeout: 3000
connectionPoolSize: 64
connectionMinimumIdleSize: 10
reconnectionTimeout: 3000
threads: 10
codec: org.redisson.codec.JsonJacksonCodec
nettyThreads: 10
transportMode: NIO
idleConnectionTimeout: 10000
pingTimeout: 1000
connectTimeout: 10000
database: 0
Java Code
public class RedissonConfig {
private String address;
private int connectionMinimumIdleSize;
private int idleConnectionTimeout;
private int pingTimeout;
private int connectTimeout;
private int timeout;
private int reconnectionTimeout;
private int connectionPoolSize;
private int database;
private int threads; // 当前处理核数量 * 2
private int nettyThreads;
private String codec;
@ConditionalOnProperty(name = "redisson.address")
@Bean(destroyMethod = "shutdown")
RedissonClient redisson() throws Exception {
Config config = new Config();
config.useSingleServer().setAddress(address)
.setConnectionMinimumIdleSize(connectionMinimumIdleSize).setIdleConnectionTimeout(idleConnectionTimeout)
.setPingTimeout(pingTimeout).setConnectTimeout(connectTimeout).setTimeout(timeout)
.setConnectionPoolSize(connectionPoolSize).setDatabase(database)
;
config.setThreads(threads);
config.setTransportMode(TransportMode.NIO);
config.setNettyThreads(nettyThreads);
// SingleServerConfig singleServerConfig =
// config.useSingleServer().setAddress();
// Config config = Config.fromJSON(new
// ClassPathResource(RedisContants.RedissonConstants.REDISSON_JSON_CONFIG_FILE_NAME).getFile());
return Redisson.create(config);
}
@ConditionalOnProperty(name = "redisson.address")
@Bean
RedissonReactiveClient RedissonReactive() throws IOException {
Config config = new Config();
config.useSingleServer().setAddress(address)
.setConnectionMinimumIdleSize(connectionMinimumIdleSize).setIdleConnectionTimeout(idleConnectionTimeout)
.setPingTimeout(pingTimeout).setConnectTimeout(connectTimeout).setTimeout(timeout)
.setConnectionPoolSize(connectionPoolSize).setDatabase(database)
;
config.setThreads(threads);
config.setTransportMode(TransportMode.NIO);
config.setNettyThreads(nettyThreads);
return Redisson.createReactive(config);
}
Excpetion:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'redissonUtil': Unsatisfied dependency expressed through method 'setRedissonReactiveClient' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RedissonReactive' defined in class path resource [com/sst/common/config/RedissonConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonReactiveClient]: Factory method 'RedissonReactive' threw exception; nested exception is io.netty.resolver.dns.DnsNameResolverContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'www.chasel.com' failed to resolve 'www.chasel.com' after 2 queries
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:667)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)
at com.sst.AdminApiApplication.main(AdminApiApplication.java:13)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RedissonReactive' defined in class path resource [com/sst/common/config/RedissonConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonReactiveClient]: Factory method 'RedissonReactive' threw exception; nested exception is io.netty.resolver.dns.DnsNameResolverContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'www.chasel.com' failed to resolve 'www.chasel.com' after 2 queries
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1173)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1067)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:659)
... 19 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonReactiveClient]: Factory method 'RedissonReactive' threw exception; nested exception is io.netty.resolver.dns.DnsNameResolverContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'www.chasel.com' failed to resolve 'www.chasel.com' after 2 queries
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 31 common frames omitted
Caused by: io.netty.resolver.dns.DnsNameResolverContext$SearchDomainUnknownHostException: Search domain query failed. Original hostname: 'www.chasel.com' failed to resolve 'www.chasel.com' after 2 queries
at io.netty.resolver.dns.DnsNameResolverContext.finishResolve(DnsNameResolverContext.java:728)
at io.netty.resolver.dns.DnsNameResolverContext.tryToFinishResolve(DnsNameResolverContext.java:670)
at io.netty.resolver.dns.DnsNameResolverContext.query(DnsNameResolverContext.java:306)
at io.netty.resolver.dns.DnsNameResolverContext.query(DnsNameResolverContext.java:295)
at io.netty.resolver.dns.DnsNameResolverContext.access$700(DnsNameResolverContext.java:60)
at io.netty.resolver.dns.DnsNameResolverContext$3.operationComplete(DnsNameResolverContext.java:346)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:121)
at io.netty.resolver.dns.DnsQueryContext.setFailure(DnsQueryContext.java:223)
at io.netty.resolver.dns.DnsQueryContext.access$300(DnsQueryContext.java:42)
at io.netty.resolver.dns.DnsQueryContext$4.run(DnsQueryContext.java:162)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:125)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.3.0.28:53] query timed out after 5000 milliseconds (no stack trace available)
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 25 (12 by maintainers)
Commits related to this issue
- Fixed - DNSNameResolver bug (workaround). #1646 #1625 #1486 — committed to redisson/redisson by deleted user 6 years ago
- Fixed - DNSNameResolver bug (workaround). #1646 #1625 #1486 #1693 — committed to redisson/redisson by deleted user 5 years ago
Change your system’s DNS to working one
related to https://github.com/netty/netty/issues/8261