Uploaded image for project: 'Couchbase node.js Client Library'
  1. Couchbase node.js Client Library
  2. JSCBC-630

Doing a get() on a non-json document causes node runtime crash

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.6.10
    • 2.6.9
    • library
    • None
    • 1

    Description

      If you perform a get() on a non-JSON document using the NodeJS SDK, it will cause v8 to crash with the following stack trace:

      FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal.
       1: 0x100064fc7 node::Abort() [/usr/local/bin/node]
       2: 0x10006563a node::errors::TryCatchScope::~TryCatchScope() [/usr/local/bin/node]
       3: 0x10018db5a v8::Utils::ReportApiFailure(char const*, char const*) [/usr/local/bin/node]
       4: 0x10561156a Couchnode::DefaultTranscoder::decodeJson(void const*, unsigned long) [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
       5: 0x105611897 Couchnode::DefaultTranscoder::decode(void const*, unsigned long, unsigned int) [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
       6: 0x10560635f _DispatchValueCallback(lcb_st*, int, lcb_RESPBASE const*) [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
       7: 0x105658726 mcreq_dispatch_response [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
       8: 0x10562ccff lcb::Server::try_read(lcbio_CTX*, rdb_IOROPE*) [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
       9: 0x10562df91 on_read(lcbio_CTX*, unsigned int) [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
      10: 0x105625656 Cr_handler [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
      11: 0x105612735 read_cb [/Users/matt/Documents/node/node_modules/couchbase/build/Release/couchbase_impl.node]
      12: 0x1007c4301 uv__stream_io [/usr/local/bin/node]
      13: 0x1007cb9dd uv__io_poll [/usr/local/bin/node]
      14: 0x1007bc76a uv_run [/usr/local/bin/node]
      15: 0x1000464f3 node::Start(v8::Isolate*, node::IsolateData*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) [/usr/local/bin/node]
      16: 0x100044736 node::Start(uv_loop_s*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) [/usr/local/bin/node]
      17: 0x1000443b7 node::Start(int, char**) [/usr/local/bin/node]
      18: 0x100003034 start [/usr/local/bin/node]
      

      Steps to Reproduce

      1. Load a single non-json document into the cluster, e.g.:

      /opt/couchbase/bin/cbc pillowfight -U 'couchbase://localhost/test' -u Administrator -P password --populate-only -I 1
      


      2. Perform a get() on that document, e.g.:

      var couchbase = require('couchbase')
      var cluster = new couchbase.Cluster('couchbase://10.143.186.101/');
      cluster.authenticate('Administrator', 'password');
      var bucket = cluster.openBucket('test');
       
      bucket.get('00000000000000000000', function (err, result) {
          console.log('Got result: %j', result.value);
      });
      

      Attachments

        For Gerrit Dashboard: JSCBC-630
        # Subject Branch Project Status CR V

        Activity

          People

            brett19 Brett Lawson
            matt.carabine Matt Carabine (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty