Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ArrayIndexOutOfBoundsException in HostUtils.calculateReplicationFactorForDC #287

Open
skissane opened this issue Jan 20, 2020 · 4 comments

Comments

@skissane
Copy link

I am using Dyno 1.7.2-rc2 as a dependency of Netflix Conductor v2.24.2. I am getting this error:

Exception in thread "main" com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error in custom provider, java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 0
  while locating com.netflix.conductor.jedis.DynomiteJedisProvider
  at com.netflix.conductor.server.DynomiteClusterModule.configure(DynomiteClusterModule.java:35) (via modules: com.google.inject.util.Modules$OverrideModule -> com.netflix.conductor.server.DynomiteClusterModule)
  while locating redis.clients.jedis.commands.JedisCommands
Caused by: java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 0
	at com.netflix.dyno.jedis.DynoJedisUtils.startConnectionPool(DynoJedisUtils.java:83)
	at com.netflix.dyno.jedis.DynoJedisUtils.createConnectionPool(DynoJedisUtils.java:60)
	at com.netflix.dyno.jedis.DynoJedisClient$Builder.buildDynoJedisClient(DynoJedisClient.java:4869)
	at com.netflix.dyno.jedis.DynoJedisClient$Builder.build(DynoJedisClient.java:4797)
	at com.netflix.conductor.jedis.DynomiteJedisProvider.get(DynomiteJedisProvider.java:59)
	at com.netflix.conductor.jedis.DynomiteJedisProvider.get(DynomiteJedisProvider.java:24)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
	at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
	at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65)
	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
	at com.netflix.governator.event.ApplicationEventModule$ApplicationEventSubscribingProvisionListener.onProvision(ApplicationEventModule.java:89)
	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:133)
	at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
	at com.google.inject.Guice.createInjector(Guice.java:99)
	at com.google.inject.Guice.createInjector(Guice.java:73)
	at com.netflix.conductor.bootstrap.Main.main(Main.java:50)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
	at com.netflix.dyno.connectionpool.impl.lb.HostUtils.calculateReplicationFactorForDC(HostUtils.java:71)
	at com.netflix.dyno.connectionpool.impl.lb.HostSelectionWithFallback.initWithHosts(HostSelectionWithFallback.java:368)
	at com.netflix.dyno.connectionpool.impl.ConnectionPoolImpl.initSelectionStrategy(ConnectionPoolImpl.java:641)
	at com.netflix.dyno.connectionpool.impl.ConnectionPoolImpl.start(ConnectionPoolImpl.java:543)
	at com.netflix.dyno.jedis.DynoJedisUtils.startConnectionPool(DynoJedisUtils.java:71)
	... 29 more

I presume I have set the configuration to talk to the dynomite cluster wrong. But, it would be helpful for beginners if it could throw a more specific exception explaining how the configuration is wrong.

@prkrishna
Copy link

Is this resolved? I'm facing the same issue

@abhinav0101
Copy link

same issue faced. Please help!

@abhinav0101
Copy link

it comes when I set .setLocalDataCenter() is config

@lijia-rengage
Copy link

same problem. Is there any solution?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants