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

Most upvoted comments

Change your system’s DNS to working one