[ https://issues.apache.org/jira/browse/ATLAS-628?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hemanth Yamijala updated ATLAS-628: ----------------------------------- Attachment: ATLAS-628-2.patch This patch, which is open for review, adds the ability to run the setup steps as part of server startup. There is a configuration that should be enabled for running these steps on startup. It is disabled by default for backwards compatible behavior. > Starting two Atlas instances at the same time causes exceptions in HA mode. > --------------------------------------------------------------------------- > > Key: ATLAS-628 > URL: https://issues.apache.org/jira/browse/ATLAS-628 > Project: Atlas > Issue Type: Bug > Affects Versions: 0.7-incubating > Reporter: Hemanth Yamijala > Assignee: Hemanth Yamijala > Priority: Blocker > Fix For: 0.7-incubating > > Attachments: ATLAS-628-1.patch, ATLAS-628-2.patch, ATLAS-628.patch > > > Configure HA parameters for Atlas. Use SOLR and HBase as backends. From two > terminals start two instances of Atlas at roughly the same time. This causes > failure exceptions and at least one instance does not start up properly (in > either active or passive mode). The relevant stack trace is: > {code} > Caused by: java.lang.ExceptionInInitializerError > at > org.apache.atlas.repository.graph.GraphBackedMetadataRepository.<clinit>(GraphBackedMetadataRepository.java:67) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:278) > at > com.google.inject.internal.cglib.core.$ReflectUtils.defineClass(ReflectUtils.java:386) > at > com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:219) > at > com.google.inject.internal.cglib.proxy.$Enhancer.createHelper(Enhancer.java:377) > at > com.google.inject.internal.cglib.proxy.$Enhancer.createClass(Enhancer.java:317) > at > com.google.inject.internal.ProxyFactory$ProxyConstructor.<init>(ProxyFactory.java:252) > at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:178) > at > com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:90) > at > com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29) > at > com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37) > at > com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:33) > at com.google.inject.internal.FailableCache$1.load(FailableCache.java:37) > at > com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599) > at > com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379) > at > com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342) > at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257) > at com.google.common.cache.LocalCache.get(LocalCache.java:4000) > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004) > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874) > at > com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4880) > at com.google.inject.internal.FailableCache.get(FailableCache.java:48) > at > com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50) > at > com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:136) > at > com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:547) > at > com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:884) > at > com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805) > at > com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282) > at > com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214) > at > com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:890) > at com.google.inject.internal.FactoryProxy.notify(FactoryProxy.java:46) > at > com.google.inject.internal.ProcessedBindingData.runCreationListeners(ProcessedBindingData.java:50) > at > com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:134) > ... 24 more > Caused by: java.lang.IllegalArgumentException: Database has already been > initialized but not frozen > at > com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) > at > com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.<init>(GraphDatabaseConfiguration.java:1294) > at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:93) > at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:73) > at > org.apache.atlas.repository.graph.TitanGraphProvider.getGraphInstance(TitanGraphProvider.java:105) > at > org.apache.atlas.repository.graph.GraphHelper.<clinit>(GraphHelper.java:64) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)