[ 
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)

Reply via email to