typegoose: Upgrading from 6.1.0-9 to 6.1.0-10 or greater errors with Assertion `(current_write_) == nullptr' failed

Versions

  • NodeJS: 12.13.0
  • Typegoose(NPM): 6.1.0-10
  • Typegoose(GIT): commithash
  • mongoose: 5.7.11
  • mongodb: 3.3.3

What is the Problem?

Going from 6.1.0-9 to anything greater errors with Assertion `(current_write_) == nullptr' failed

Code Example

[2019-11-18 09:12:34] [INFO] testApp connected
[2019-11-18 09:12:34] [INFO] testApp database ready
[2019-11-18 09:12:34] [INFO] testSite connected
[2019-11-18 09:12:34] [INFO] testSite database ready
[2019-11-18 09:12:34] [INFO] Creating App
[2019-11-18 09:12:34] [INFO] Created App
[2019-11-18 09:12:34] [INFO] Using port 4000
[2019-11-18 09:12:34] [INFO] Creating Server
[2019-11-18 09:12:34] [INFO] Created Server
[2019-11-18 09:12:34] [INFO] Running server on port 4000 running under false
(node:2672) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
ng serve mm-api[2672]: c:\ws\src\tls_wrap.cc:730: Assertion `(current_write_) == nullptr' failed.
 1: 00007FF7F661094F napi_wrap+124431
 2: 00007FF7F65B2696 v8::base::CPU::has_sse+34502
 3: 00007FF7F65B29B3 v8::base::CPU::has_sse+35299
 4: 00007FF7F64CB344 std::basic_ostream<char,std::char_traits<char> >::put+18948
 5: 00007FF7F64CE26E uv_loop_size+2894
 6: 00007FF7F652F895 v8::internal::LookupIterator::index+22229
 7: 00007FF7F652C510 v8::internal::LookupIterator::index+9040
 8: 00007FF7F6D6B150 v8::internal::Builtins::builtin_handle+325536
 9: 00007FF7F6D6A697 v8::internal::Builtins::builtin_handle+322791
11: 00007FF7F6D6A7DE v8::internal::Builtins::builtin_handle+323118
12: 00007FF7F71E2D6D v8::internal::SetupIsolateDelegate::SetupHeap+568205
13: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
14: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
15: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
16: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
17: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
18: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
19: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
20: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
21: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
22: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
23: 00007FF7F71627FC v8::internal::SetupIsolateDelegate::SetupHeap+42524
24: 00007FF7F715FDB1 v8::internal::SetupIsolateDelegate::SetupHeap+31697
25: 00007FF7F715F99C v8::internal::SetupIsolateDelegate::SetupHeap+30652
26: 00007FF7F6CC4F43 v8::internal::Execution::CallWasm+1395
27: 00007FF7F6CC48C6 v8::internal::Execution::Call+182
28: 00007FF7F6D95B3B v8::Function::Call+603
29: 00007FF7F662C79D node::CallbackScope::~CallbackScope+749
30: 00007FF7F662CA61 node::CallbackScope::~CallbackScope+1457
31: 00007FF7F6625FE3 v8::internal::interpreter::BytecodeNode::operand_scale+179
32: 00007FF7F652EC00 v8::internal::LookupIterator::index+19008
33: 00007FF7F652F3FC v8::internal::LookupIterator::index+21052
34: 00007FF7F64CA5E2 std::basic_ostream<char,std::char_traits<char> >::put+15522
35: 00007FF7F64CAA08 std::basic_ostream<char,std::char_traits<char> >::put+16584
36: 00007FF7F64CCE73 std::basic_ostream<char,std::char_traits<char> >::put+25907
37: 00007FF7F652A605 v8::internal::LookupIterator::index+1093
38: 00007FF7F66441FB uv_tty_set_mode+9659
39: 00007FF7F66590DC uv_loop_init+844
40: 00007FF7F6659414 uv_run+244
41: 00007FF7F657B892 EVP_CIPHER_CTX_buf_noconst+30946
42: 00007FF7F65D9263 node::Start+275
43: 00007FF7F649666C RC4_options+339308
44: 00007FF7F7295D58 v8::internal::SetupIsolateDelegate::SetupHeap+1301368
45: 00007FFCDA9D7BD4 BaseThreadInitThunk+20
46: 00007FFCDB78CED1 RtlUserThreadStart+33
import { logger } from '@mm-mono/api/logger.handler';
import { IModelOptions } from '@typegoose/typegoose/lib/types';
import { Connection, ConnectionOptions, createConnection } from 'mongoose';

const options: ConnectionOptions = {
  keepAlive: true,
  useNewUrlParser: true,
  useFindAndModify: false,
  autoReconnect: true,
  reconnectInterval: 2000,
  reconnectTries: Number.MAX_VALUE,
  connectTimeoutMS: 30000,
  // @ts-ignore
  useUnifiedTopology: true
};


export const typegooseSchemaOptions = {
  _id: true,
  timestamps: true
};

export module testSiteMongoDb {
  export let testSite: Connection = null;
  testSite = createConnection(process.env.MONGODB_URI, options);

  testSite.on('error', (error) => {
    logger.error(error);
    logger.info(`testSite errored`);
  });
  testSite.on('open', () => logger.info(`testSite database ready`));
  testSite.on('connected', () => logger.info(`testSite connected`));
  testSite.on('disconnected', () => logger.info(`testSite disconnected`));


  export const testSiteOptions: IModelOptions = {
    existingConnection: testSiteMongoDb.testSite,
    schemaOptions: typegooseSchemaOptions
  };

  export function connectMongoDb() {
    return testSite;
  }
}


export module testAppMongoDb {
  export let testApp: Connection = null;
  testApp = createConnection(process.env.MONGODB_APP_URI, options);

  testApp.on('error', (error) => {
    logger.error(error);
    logger.info(`testApp errored`);
  });
  testApp.on('open', () => logger.info(`testApp database ready`));
  testApp.on('connected', () => logger.info(`testApp connected`));
  testApp.on('disconnected', () => logger.info(`testApp disconnected`));


  export const testAppOptions: IModelOptions = {
    existingConnection: testAppMongoDb.testApp,
    schemaOptions: typegooseSchemaOptions
  };

  export function connectMongoDb() {
    return testApp;
  }
}

Do you know why it happenes?

no, dependency wise, semver and tslib were added. loglevel and reflect-metadata were updated.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 24 (14 by maintainers)

Commits related to this issue

Most upvoted comments

Thanks again for pointing this out - version 6.1.5 is now released with the fix