Coder Social home page Coder Social logo

Comments (5)

devdazed avatar devdazed commented on August 24, 2024

I am having trouble reproducing this. Currently i am getting a row with 0 columns for both queries. Is this in an empty CF? What version of C* are you running?

Here is my test:

[default@test] create column family issue_33 with comparator = 'UUIDType' and default_validation_class = 'UTF8Type' and key_validation_class = 'UUIDType'; 
  var helenus = require('helenus'),
      pool = new helenus.ConnectionPool({
        hosts      : ['localhost:9160'],
        keyspace   : 'test',
        timeout    : 3000
      });

  pool.on('error', function(err){
    console.error(err.name, err.message);
  });

  pool.connect(function(err, keyspace){
    if(err){
      throw(err);
    } else {
      pool.cql("SELECT KEY, '7933d83b-1fce-4390-8903-6dde41ef04d3' FROM issue_33 WHERE key = 'd6080750-83c2-11e1-b890-5765c53d0889';", function(err, results){
        console.log(err, results);
      }); 
    }
  });

from helenus.

cs2dsb avatar cs2dsb commented on August 24, 2024

Wow, quick response!

I used your create statement + code and it worked correctly. I then executed the following in cassandra-cli and was able to reproduce it:

[default@test] list issue_33;
Using default limit of 100

0 Row Returned.
Elapsed time: 32 msec(s).
[default@test] set issue_33['d6080750-83c2-11e1-b890-5765c53d0889']['7933d83b-1fce-4390-8903-6dde41ef04d3'] = 'fred';
Value inserted.
Elapsed time: 28 msec(s).
[default@test] list issue_33;
Using default limit of 100
-------------------
RowKey: d6080750-83c2-11e1-b890-5765c53d0889
=> (column=7933d83b-1fce-4390-8903-6dde41ef04d3, value=fred, timestamp=1334171784570000)

1 Row Returned.
Elapsed time: 22 msec(s).
[default@test] del issue_33['d6080750-83c2-11e1-b890-5765c53d0889']['7933d83b-1fce-4390-8903-6dde41ef04d3'];
column removed.

So it seems the row has to exist but not with the expected column. After this I set another random column so the row wasn't completely empty and the same error occurs.

Here is the stack trace it gave from a fresh folder + npm install:

/home/ubuntu/node.js/issue_33/node_modules/helenus/node_modules/helenus-thrift/lib/thrift/connection.js:90
        throw e;
              ^
TypeError: Cannot read property 'length' of null
    at new Buffer (buffer.js:234:37)
    at /home/ubuntu/node.js/issue_33/node_modules/helenus/lib/marshal/deserializers.js:59:10
    at new <anonymous> (/home/ubuntu/node.js/issue_33/node_modules/helenus/lib/row.js:34:33)
    at onReturn (/home/ubuntu/node.js/issue_33/node_modules/helenus/lib/connection.js:353:19)
    at onReturn (/home/ubuntu/node.js/issue_33/node_modules/helenus/lib/connection.js:284:7)
    at /home/ubuntu/node.js/issue_33/node_modules/helenus/node_modules/helenus-thrift/lib/thrift/connection.js:80:11
    at Object.recv_execute_cql_query (/home/ubuntu/node.js/issue_33/node_modules/helenus/lib/cassandra/1.0/Cassandra.js:6592:12)
    at /home/ubuntu/node.js/issue_33/node_modules/helenus/node_modules/helenus-thrift/lib/thrift/connection.js:83:36
    at Socket.<anonymous> (/home/ubuntu/node.js/issue_33/node_modules/helenus/node_modules/helenus-thrift/lib/thrift/transport.js:70:9)
    at Socket.emit (events.js:67:17)

Cassandra version:

nodetool -h localhost version
ReleaseVersion: 1.0.8

from helenus.

devdazed avatar devdazed commented on August 24, 2024

it seems that this is an issue with tombstones. if you try to get a column that has been deleted and the tombstone has not yet been removed, it will result in this error. There is no real way for the driver to know if it is a tombstone, however it shouldn't crash. I'll set the marshallers to value check and if no value comes back then it will set it to null.

from helenus.

devdazed avatar devdazed commented on August 24, 2024

This will be pushed with version 0.4.0 in a day or so

from helenus.

devdazed avatar devdazed commented on August 24, 2024

The latest version (0.4.0) has been published.

from helenus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.