NEO4J - RHEL7 - Невозможно создать ограничение для пустой БД - PullRequest
0 голосов
/ 10 июля 2020

Развернул NEO4j на усиленном RHEL7 с использованием ansible. Невозможно создать никаких ограничений, даже если БД пуста. Есть идеи, как отладить это или что может быть причиной? Могут быть созданы другие объекты. Кажется, это проблема с какой-то основной библиотекой ... У нас такая же установка на другом экземпляре, которая работает нормально, поэтому я полагаю, что это должно быть связано с развертыванием ... хотя ошибок установки не было

Спасибо.

Журналы ошибок ниже:

020-07-09 12: 11: 13.898 + 0000 ERROR [onbvrErrorReporter] Клиент вызвал непредвиденную ошибку [Neo.DatabaseError.Schema.ConstraintCreationFailed] : Невозможно создать ОГРАНИЧЕНИЕ НА (оборудование: Оборудование) ASSERT equipment.UUID IS UNIQUE:, ссылка 0a5adcde-dbeb-4ef0-b9aa-9bf32ef58e63. 2020-07-09 12: 11: 13.898 + 0000 ERROR [onbvrErrorReporter] Клиент вызвал непредвиденную ошибку [Neo.DatabaseError.Schema.ConstraintCreationFailed]: невозможно создать ОГРАНИЧЕНИЕ НА (оборудование: Оборудование) ASSERT equipment.UUID IS UNIQUE:, ссылка 0a5adcde-dbeb-4ef0-b9aa-9bf32ef58e63. Невозможно создать ОГРАНИЧЕНИЕ НА (оборудование: Оборудование) ASSERT equipment.UUID IS UNIQUE:

org.neo4j.kernel.impl.query.QueryExecutionKernelException: Невозможно создать ОГРАНИЧЕНИЕ НА (оборудование: Оборудование) ASSERT equipment.UUID IS УНИКАЛЬНО:

           at org.neo4j.bolt.v1.runtime.TransactionStateMachineSPI$1.start(TransactionStateMachineSPI.java:158)
           at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State.startExecution(TransactionStateMachine.java:444)
           at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State$1.execute(TransactionStateMachine.java:259)
           at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State$1.run(TransactionStateMachine.java:240)
           at org.neo4j.bolt.v1.runtime.TransactionStateMachine.run(TransactionStateMachine.java:81)
           at org.neo4j.bolt.v1.runtime.BoltStateMachine$State$2.run(BoltStateMachine.java:457)
           at org.neo4j.bolt.v1.runtime.BoltStateMachine.run(BoltStateMachine.java:225)
           at org.neo4j.bolt.v1.messaging.BoltMessageRouter.lambda$onRun$3(BoltMessageRouter.java:93)
           at org.neo4j.bolt.runtime.MetricsReportingBoltConnection.lambda$enqueue$0(MetricsReportingBoltConnection.java:69)
           at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:195)
           at org.neo4j.bolt.runtime.MetricsReportingBoltConnection.processNextBatch(MetricsReportingBoltConnection.java:87)
           at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:143)
           at org.neo4j.bolt.runtime.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:170)
           at org.neo4j.bolt.runtime.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$2(ExecutorBoltScheduler.java:153)
           at java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
           at java.lang.Thread.run(Unknown Source)

Вызвано: org.neo4j.kernel.impl.query.QueryExecutionKernelException: Невозможно создать ОГРАНИЧЕНИЕ НА (оборудование: Оборудование) ASSERT equipment.UUID IS UNIQUE:

           at org.neo4j.cypher.internal.javacompat.ExecutionEngine.executeQuery(ExecutionEngine.java:65)
           at org.neo4j.bolt.v1.runtime.TransactionStateMachineSPI$1.start(TransactionStateMachineSPI.java:144)
           ... 17 more

Причина: org.neo4j.cypher.CypherExecutionException: Невозможно создать ОГРАНИЧЕНИЕ ДЛЯ (оборудование: Оборудование) ASSERT equipment.UUID IS UNIQUE:

           at org.neo4j.cypher.internal.compatibility.v3_4.ExceptionTranslationSupport$class.translateException(ExceptionTranslationSupport.scala:35)
           at org.neo4j.cypher.internal.compatibility.v3_4.ExceptionTranslatingQueryContext.translateException(ExceptionTranslatingQueryContext.scala:41)
           at org.neo4j.cypher.internal.compatibility.v3_4.ExceptionTranslatingQueryContext.createUniqueConstraint(ExceptionTranslatingQueryContext.scala:128)
           at org.neo4j.cypher.internal.runtime.interpreted.UpdateCountingQueryContext.createUniqueConstraint(UpdateCountingQueryContext.scala:125)
           at org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs.ProcedureCallOrSchemaCommandExecutionPlanBuilder$$anonfun$6.apply(ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala:80)
           at org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs.ProcedureCallOrSchemaCommandExecutionPlanBuilder$$anonfun$6.apply(ProcedureCallOrSchemaCommandExecutionPlanBuilder.scala:78)
           at org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs.PureSideEffectExecutionPlan.run(PureSideEffectExecutionPlan.scala:55)
           at org.neo4j.cypher.internal.compatibility.LatestRuntimeVariablePlannerCompatibility$ExecutionPlanWrapper$$anonfun$run$1.apply(LatestRuntimeVariablePlannerCompatibility.scala:128)
           at org.neo4j.cypher.internal.compatibility.LatestRuntimeVariablePlannerCompatibility$ExecutionPlanWrapper$$anonfun$run$1.apply(LatestRuntimeVariablePlannerCompatibility.scala:124)
           at org.neo4j.cypher.exceptionHandler$runSafely$.apply(exceptionHandler.scala:89)
           at org.neo4j.cypher.internal.compatibility.LatestRuntimeVariablePlannerCompatibility$ExecutionPlanWrapper.run(LatestRuntimeVariablePlannerCompatibility.scala:124)
           at org.neo4j.cypher.internal.PreparedPlanExecution.execute(PreparedPlanExecution.scala:29)
           at org.neo4j.cypher.internal.ExecutionEngine.execute(ExecutionEngine.scala:119)
           at org.neo4j.cypher.internal.javacompat.ExecutionEngine.executeQuery(ExecutionEngine.java:61)
           ... 18 more

Вызвано: org.neo4j.kernel.api. exceptions.schema.CreateConstraintFailureException: невозможно создать ограничение org.neo4j.kernel.api.schema.constaints. UniquenessConstraintDescriptor@6: существующие данные не удовлетворяют CONSTRAINT ON (метка [1]: метка [1]) ASSERT метка [1]. свойство [0] УНИКАЛЬНО: не удалось заполнить индекс для: оборудования (UUID) [поставщик: {key = lucene + native, version = 2.0}] [labelId: 1, properties [0]] на org.neo4 j.kernel.impl.newapi.Operations.indexBackedConstraintCreate (Operations. java: 1239) в org.neo4j.kernel.impl.newapi.Operations.uniquePropertyConstraintCreate (Operations. java: 943) в org.neo4j.internal. kernel.api.SchemaWrite.uniquePropertyConstraintCreate (SchemaWrite. java: 66) в org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.createUniqueConstraint (TransactionBoundQueryContext. scala: 670o. Compatibility.v3_4.ExceptionTranslatingQueryContext $$ anonfun $ createUniqueConstraint $ 1.apply $ mcZ $ sp (ExceptionTranslatingQueryContext. scala: 128) на org.neo4j.cypher.internal.compatibility.v3_4.ExceptionTranslatingQueryContext . scala: 128) по адресу org.neo4j.cypher.internal.compatibility.v3_4.ExceptionTranslatingQueryContext $$ anonfun $ createUniqueConstraint $ 1.apply (ExceptionTranslatingQueryContext. scala: 128) по адресу org.neo4j.cypher.internal.compatibility. .ExceptionTranslationSuppo rt $ class.translateException (ExceptionTranslationSupport. scala: 33) ... еще 31 Причина: org.neo4j.kernel.api.exceptions.schema.UniquePropertyValueValidationException: существующие данные не удовлетворяют CONSTRAINT ON (метка [1]: label [1]) ASSERT label [1] .property [0] ЯВЛЯЕТСЯ УНИКАЛЬНЫМ: Не удалось заполнить индекс для: оборудования (UUID) [поставщик: {key = lucene + native, version = 2.0}] [labelId: 1, properties [0 ]] в org.neo4j.kernel.impl.api.state.ConstraintIndexCreator.awaitConstrainIndexPopulation (ConstraintIndexCreator. java: 244) в org.neo4j.kernel.impl.api.state.ConstraintIndexCreator.CreateIndexCreator. 135) в org.neo4j.kernel.impl.newapi.Operations.indexBackedConstraintCreate (Operations. java: 1224) ... еще 38 Причина: org.neo4j.kernel.api.exceptions.index.IndexPopulationFailedKernelException: не удалось заполнить индекс для: Оборудование (UUID) [поставщик: {key = lucene + native, version = 2. 0}] [labelId: 1, свойства [0]] в org.neo4j.kernel.impl.api.index.IndexPopulationFailure $ 1.asIndexPopulationFailure (IndexPopulationFailure. java: 47) в org.neo4j.kernel.impl.api. index.FailedIndexProxy.failureCause (FailedIndexProxy. java: 80) в org.neo4j.kernel.impl.api.index.FailedIndexProxy.awaitStoreScanCompleted (FailedIndexProxy. java: 75) в org.neo4j. index. state.ConstraintIndexCreator.awaitConstrainIndexPopulation (ConstraintIndexCreator. java: 232) ... Еще 40 Вызвано: java .lang.NoSuchMethodError: org. apache .lucene.codecs.blocktree.BlockTreeTreeTreeTermsateWorks org. apache .lucene.codecs.autoprefix.AutoPrefixPostingsFormat. (AutoPrefixPostingsFormat. java: 77) в org. apache .lucene.codecs.autoprefix.AutoPr efixPostingsFormat. (AutoPrefixPostingsFormat. java: 52) в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (Неизвестный источник) в sun.restructorImpl.newInstance (Неизвестный источник) в sun.reflect. * .lang.reflect.Constructor.newInstance (Неизвестный источник) в java .lang.Class.newInstance (Неизвестный источник) в организации apache .lucene.util.NamedSPILoader.reload (NamedSPILoader. java: 72) в орг. apache .lucene.util.NamedSPILoader. (NamedSPILoader. java: 51) в org. apache .lucene.util.NamedSPILoader. (NamedSPILoader. java: 38) в орг. apache .lucene.codecs.PostingsFormat $ Holder. (PostingsFormat. java: 49) в org. apache .lucene.codecs.PostingsFormat.forName (PostingsFormat. java: 112) в org. apache .lucene. codecs.lucene62.Lucene62Code c. (Lucene62Code c. java: 167) в org. apache .lucene.codecs.lucene62.Lucene62Code c. (Lucene62Code c. java: 82 ) в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Meth od) в sun.reflect.NativeConstructorAccessorImpl.newInstance (Неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Неизвестный источник) в java .lang.reflect.Constructor.newInstance (Неизвестный источник) в * 10ass65 * .lang.Clang .newInstance (неизвестный источник) в орг. apache .lucene.util.NamedSPILoader.reload (NamedSPILoader. java: 72) в орг. apache .lucene.util.NamedSPILoader. (NamedSPILoader. java: 51 ) в орг. apache .lucene.util.NamedSPILoader. (NamedSPILoader. java: 38) в орг. apache .lucene.codecs.Codec $ Holder. (Код c. java: 47) в орг. apache .lucene.codecs.Code c .getDefault (Код c. java: 143) в орг. apache .lucene.index.LiveIndexWriterConfig. (LiveIndexWriterConfig. java: 121 ) в org. apache .lucene.index.IndexWriterConfig. (IndexWriterConfig. java: 151) в org.neo4j.kernel.api.impl.index.IndexWriterConfigs.standard (IndexWriterConfigs. java: 81) в org.neo4j.kernel.api.impl.index.IndexWriterConfigs.standard (IndexWriterConfigs. *1083*: 81) .neo4j.kernel.api.impl.index.IndexWriterConfigs.population (IndexWriterConfigs. java: 119) в org.neo4j.kernel.api.impl.index.Ind exWriterConfigs.population (IndexWriterConfigs. java: 114) в org.neo4j.kernel.api.impl.index.partition.WritableIndexPartitionFactory.createPartition (WritableIndexPartitionFactory. java: 454) в orj.implnel.api. index.AbstractLuceneIndex.open (AbstractLuceneIndex. java: 103) на org.neo4j.kernel.api.impl.index.WritableAbstractDatabaseIndex.open (WritableAbstractDatabaseIndex. java: 62) на org.neo4j. schema.populator.LuceneIndexPopulator.create (LuceneIndexPopulator. java: 51) в org.neo4j.kernel.impl.index.schema.fusion.InstanceSelector.consume (InstanceSelector. java: 147) в org.neo4 impl.index.schema.fusion.InstanceSelector.forAll (InstanceSelector. java: 90) в org.neo4j.kernel.impl.index.schema.fusion.FusionIndexPopulator.create (FusionIndexPopulator. java: 56) в org. neo4j.kernel.impl.api.index.MultipleIndexPopulator $ IndexPopulation.create (MultipleIndexPopulator. java: 525) в org.neo4j.kernel.impl.api.index.MultipleIndexPopulator. lambda $ create $ 0 (MultipleIndexPopulator. java: 144) в org.neo4j.kernel.impl.api.index.MultipleIndexPopulator.forEachPopulation (MultipleIndexPopulator. java: 408) в org.neo4j.kernel.impl.api .MultipleIndexPopulator.create (MultipleIndexPopulator. java: 141) в org.neo4j.kernel.impl.api.index.IndexPopulationJob.run (IndexPopulationJob. java: 103) в org.neo4j.kernel.impl.api .IndexPopulationJobController $ IndexPopulationJobWrapper.run (IndexPopulationJobController. java: 82) в org.neo4j.kernel.impl.scheduler.ThreadPool.lambda $ submit $ 0 (ThreadPool. java: 58) в java .util. Исполнители $ RunnableAdapter.call (Unknown Source) at java .util.concurrent.FutureTask.run (Unknown Source) ... еще 3

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

В конце концов, это была проблема с развертыванием. Была развернута более новая библиотека lucene, не содержащая этого метода.

0 голосов
/ 11 июля 2020

Казалось бы, база данных может быть не пустой из-за этой ошибки:

Существующие данные не удовлетворяют CONSTRAINT ON (label [1]: label [1]) ASSERT label [1]. свойство [0] УНИКАЛЬНО

Он жалуется, что ограничение не может быть создано, поскольку существующие данные не удовлетворяют ограничению.

Вы можете найти виновника с помощью этого запроса:

MATCH ( e:Equipment ) 
WITH e.UUID as id, count(*) as count
WHERE count > 1
RETURN id;
...