Neo4jError: игнорируется из-за ошибки или сброса - PullRequest
0 голосов
/ 18 апреля 2019

Проблема также размещена здесь: https://github.com/neo4j/neo4j-javascript-driver/issues/452

  • Версия Neo4j: Enterprise 3.4.10
  • Режим Neo4j: Случайный кластер с 3 ядрами 0 реплика чтения
  • Версия драйвера: NodeJS neo4j-driver@1.7.3
  • Операционная система: Nodejs в Docker Alpine Linux 4.4.0-145-generic;База данных в Docker Alpine Linux v3.8

  • Действия по воспроизведению Выполнение запросов.Это может быть большая нагрузка, но это не всегда так.

  • Ожидаемое поведение: запросы выполняются, а не отклоняются.
  • Фактическое поведение Я получаю ошибки сброса соединения илизапрос игнорируется
{ app: 'api-prod',
4/18/2019 1:03:36 PM0|app      |   error: { Neo4jError: Ignored either because of an error or RESET
4/18/2019 1:03:36 PM0|app      |     at captureStacktrace (/home/node/app/node_modules/neo4j-driver/lib/v1/result.js:200:15)
4/18/2019 1:03:36 PM0|app      |     at new Result (/home/node/app/node_modules/neo4j-driver/lib/v1/result.js:73:19)
4/18/2019 1:03:36 PM0|app      |     at finishTransaction (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:328:10)
4/18/2019 1:03:36 PM0|app      |     at Object.commit (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:232:17)
4/18/2019 1:03:36 PM0|app      |     at Transaction.commit (/home/node/app/node_modules/neo4j-driver/lib/v1/transaction.js:136:35)
4/18/2019 1:03:36 PM0|app      |     at TransactionExecutor._handleTransactionWorkSuccess (/home/node/app/node_modules/neo4j-driver/lib/v1/internal/transaction-executor.js:151:12)
4/18/2019 1:03:36 PM0|app      |     at /home/node/app/node_modules/neo4j-driver/lib/v1/internal/transaction-executor.js:127:23
4/18/2019 1:03:36 PM0|app      |     at <anonymous>
4/18/2019 1:03:36 PM0|app      |     at process._tickDomainCallback (internal/process/next_tick.js:228:7) code: 'N/A', name: 'Neo4jError' },
4/18/2019 1:03:36 PM0|app      |   query: 'MATCH (c:company {uuid: $cid})\n  RETURN {\n    paid_seats: c.paid_seats,\n    trial_end: c.trial_end\n  }',
4/18/2019 1:03:36 PM0|app      |   data: { cid: 'c5d1d277-3646-44b1-836b-6e40e68d17a7' },
4/18/2019 1:03:36 PM0|app      |   level: 'error',
4/18/2019 1:03:36 PM0|app      |   message: 'Datbase error on mixed transaction' }

Если я возьму информацию из журнала и выполню запрос, он будет работать сам по себе.Я подумал, что это может быть связано с тем, что транзакции не были закрыты, поэтому мы сделали снимок базы данных и переместили его локально, а также получили ошибки локально.

В / var / lib / neo4j / logs нет журналов ошибокна любом из док-контейнеров.Debug.log не содержит никакой релевантной информации

. В целом, мы используем метод-обертку для вызова вызовов нашей базы данных, чтобы проанализировать результаты для нас.Раньше мы использовали только .run и недавно переключились на .writeTransaction, чтобы попытаться решить проблему, но я думаю, что она стала еще хуже.

Вот оболочка:

run: function(query, data, parse = true){
    return new Promise((resolve, reject)=>{
      let session = driver.session()
      session.writeTransaction((tx)=>{
        tx.run(query, data)
        .then((result)=>{
          let records = result.records.map((record)=>{
            return record
          });
          session.close()
          resolve(parse ? db.parse(records) : records);
        })
      }).catch((err)=>{
        logger.error('Datbase error on mixed transaction', {
          error: err,
          query: query,
          data: data
        });

        if (err.code === neo4j.error.SERVICE_UNAVAILABLE) {
          logger.error('Database Unavailable', err)
        }

        session.close()
        reject(err);
      })
    });
  },

Тогда мыпросто await _db.run(query, params)

Мы получаем изрядное количество этих ошибок.Есть идеи?

Сегодня вечером я собирался обновить базу данных до последней версии и посмотреть, поможет ли это вообще.

1 Ответ

0 голосов
/ 19 апреля 2019

Я обновил базу данных до версии 3.5.4-enterprise, и с тех пор я не видел ни одной из этих ошибок подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...