Skip to content

neo4j-driver causing Node.js process to crash silently #324

Closed
@acjohnso25

Description

@acjohnso25

We're using neo4j-driver 1.5.2 in a Node.js service and have been seeing mysterious crashes for months now. We tried catching uncaught exceptions and even wrapping process.exit() to try to track them down, but no luck; the process always just dies silently. Finally we decided to turn on some profiling and saw this on the next crash:

==== JS stack trace =========================================

Security context: 0x3deeb22b4629
    1: stringify(aka stringify) [native json.js:157] [pc=0x13b372f3a284] (this=0x3deeb22041b9 ,u=0x28cad263c799 >,v=0x3deeb22041b9 ,I=0x3deeb22041b9 )
    2: arguments adaptor frame: 1->3
    3: /* anonymous */(aka /* anonymous */) [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js:209] [pc=0x13b37317fdcf] (this=0x3deeb22041b9 )
    4: /* anonymous */(aka /* anonymous */) [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/node_modules/core-js/library/modules/_FAILs.js:3] [pc=0x13b3731653bb] (this=0x3deeb22041b9 ,exec=0x28cad263c281 )
    5: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js:204] [pc=0x13b37317a99b] (this=0x28cad25bbfe1 ,exports=0x28cad25bbfe1 ,require=0x28cad25c3a91 ,module=0x28cad25bbf91 ,__filename=0x28cad25ba711 ,__dirname=0x28cad25c3a29 )
    7: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad25bbf91 ,content=0x28cad25bec49 ,filename=0x28cad25ba711 )
    8: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad25bbf91 ,filename=0x28cad25ba711 )
    9: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad25bbf91 ,filename=0x28cad25ba711 )
   10: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fdf229 ,parent=0x28cad25b4879 ,isMain=0x3deeb22041b9 )
   11: arguments adaptor frame: 2->3
   12: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fdf229 )
   13: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js:1] [pc=0x13b3731789bb] (this=0x28cad25b48c9 ,exports=0x28cad25b48c9 ,require=0x28cad25b7f71 ,module=0x28cad25b4879 ,__filename=0x28cad25b2e21 ,__dirname=0x28cad25b7f09 )
   15: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad25b4879 ,content=0x28cad25b7901 ,filename=0x28cad25b2e21 )
   16: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad25b4879 ,filename=0x28cad25b2e21 )
   17: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad25b4879 ,filename=0x28cad25b2e21 )
   18: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fde7c9 ,parent=0x28cad25accd9 ,isMain=0x3deeb22041b9 )
   19: arguments adaptor frame: 2->3
   20: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fde7c9 )
   21: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/core-js/symbol.js:1] [pc=0x13b373178794] (this=0x28cad25acd29 ,exports=0x28cad25acd29 ,require=0x28cad25af479 ,module=0x28cad25accd9 ,__filename=0x28cad25abac9 ,__dirname=0x28cad25af411 )
   23: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad25accd9 ,content=0x28cad25aef19 ,filename=0x28cad25abac9 )
   24: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad25accd9 ,filename=0x28cad25abac9 )
   25: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad25accd9 ,filename=0x28cad25abac9 )
   26: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fc4d89 ,parent=0x28cad24a74c9 ,isMain=0x3deeb22041b9 )
   27: arguments adaptor frame: 2->3
   28: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fc4d89 )
   29: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/helpers/typeof.js:9] [pc=0x13b37316b0ba] (this=0x28cad24a7519 ,exports=0x28cad24a7519 ,require=0x28cad24aa551 ,module=0x28cad24a74c9 ,__filename=0x28cad24a62b9 ,__dirname=0x28cad24aa4e9 )
   31: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad24a74c9 ,content=0x28cad24a97a9 ,filename=0x28cad24a62b9 )
   32: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad24a74c9 ,filename=0x28cad24a62b9 )
   33: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad24a74c9 ,filename=0x28cad24a62b9 )
   34: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fc43b1 ,parent=0x28cad24a1201 ,isMain=0x3deeb22041b9 )
   35: arguments adaptor frame: 2->3
   36: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fc43b1 )
   37: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/node_modules/babel-runtime/helpers/possibleConstructorReturn.js:5] [pc=0x13b37316ad5b] (this=0x28cad24a1251 ,exports=0x28cad24a1251 ,require=0x28cad24a3df9 ,module=0x28cad24a1201 ,__filename=0x28cad249ffb1 ,__dirname=0x28cad24a3d91 )
   39: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad24a1201 ,content=0x28cad24a34e9 ERROR("this hasn't been initialised - super() hasn't been called");\n  }\n\n  return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;\n};>,filename=0x28cad249ffb1 )
   40: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad24a1201 ,filename=0x28cad249ffb1 )
   41: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad24a1201 ,filename=0x28cad249ffb1 )
   42: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fbaba1 ,parent=0x28cad2441319 ,isMain=0x3deeb22041b9 )
   43: arguments adaptor frame: 2->3
   44: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fbaba1 )
   45: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/lib/v1/ERROR.js:16] [pc=0x13b373166e3c] (this=0x28cad2441369 ,exports=0x28cad2441369 ,require=0x28cad2445171 ,module=0x28cad2441319 ,__filename=0x28cad24403b1 ERROR.js>,__dirname=0x28cad2445109 )
   47: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad2441319 ,content=0x28cad2443381 ,filename=0x28cad24403b1 ERROR.js>)
   48: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad2441319 ,filename=0x28cad24403b1 ERROR.js>)
   49: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad2441319 ,filename=0x28cad24403b1 ERROR.js>)
   50: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fa79c1 ERROR>,parent=0x28cad23950d9 ,isMain=0x3deeb22041b9 )
   51: arguments adaptor frame: 2->3
   52: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fa79c1 ERROR>)
   53: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/lib/v1/integer.js:16] [pc=0x13b37316064b] (this=0x28cad2395129 ,exports=0x28cad2395129 ,require=0x28cad23a61e9 ,module=0x28cad23950d9 ,__filename=0x28cad2394161 ,__dirname=0x28cad23a6181 )
   55: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad23950d9 ,content=0x28cad2397221 ,filename=0x28cad2394161 )
   56: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad23950d9 ,filename=0x28cad2394161 )
   57: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad23950d9 ,filename=0x28cad2394161 )
   58: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fa7949 ,parent=0x28cad2389f71 ,isMain=0x3deeb22041b9 )
   59: arguments adaptor frame: 2->3
   60: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fa7949 )
   61: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/lib/v1/index.js:8] [pc=0x13b37315e670] (this=0x28cad2389fc1 ,exports=0x28cad2389fc1 ,require=0x28cad2391b51 ,module=0x28cad2389f71 ,__filename=0x28cad2388d31 ,__dirname=0x28cad2391ae9 )
   63: _compile [module.js:409] [pc=0x13b372f4b469] (this=0x28cad2389f71 ,content=0x28cad238c0a9 ,filename=0x28cad2388d31 )
   64: .js [module.js:~414] [pc=0x13b37302ae6b] (this=0x2a7f02ef6821 ,module=0x28cad2389f71 ,filename=0x28cad2388d31 )
   65: load [module.js:343] [pc=0x13b372f422bb] (this=0x28cad2389f71 ,filename=0x28cad2388d31 )
   66: _load [module.js:300] [pc=0x13b372f37be4] (this=0x2a7f02ef6859 ,request=0x3e1a00fa6fa1 ,parent=0x28cad2383ef1 ,isMain=0x3deeb22041b9 )
   67: arguments adaptor frame: 2->3
   68: require(aka require) [internal/module.js:~11] [pc=0x13b372fb691b] (this=0x3deeb22041b9 ,path=0x3e1a00fa6fa1 )
   69: /* anonymous */ [/opt/FillerService+r_0.0.346/server/node_modules/neo4j-driver/lib/index.js:8] [pc=0x13b37315e227] (this=0x28cad2383f41 ,exports=0x28cad2383f41 ,require=0x28cad2386d11 ,module=0x28cad2383ef1 ,__filename=0x28cad2382b51 ,__dirname=0x28cad2386ca9 )
...

I'm not really sure what's going on here, or even how to reproduce it. It's very intermittent, doesn't seem to happen in any predictable way. (Believe me, I've tried.)

If anybody needs more info or has ideas for ways to repro, I'm all ears.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions