Comments (5)
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.
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.
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.
This will be pushed with version 0.4.0 in a day or so
from helenus.
The latest version (0.4.0) has been published.
from helenus.
Related Issues (20)
- row.slice() is deserializing data twice giving incorrect values HOT 3
- multi-get thrift support? HOT 2
- formatCQL modifies params HOT 4
- TypeError: value is out of bounds HOT 4
- No way to know when reconnected HOT 4
- Please tag releases of Helenus HOT 3
- HelenusInvalidRequestException: cannot parse '0' as hex bytes HOT 2
- TimeUUIDType seems to be deserialized to a wrong type HOT 1
- Pooling flawed, or improper usage? HOT 12
- CQL3 Map Collection type returning interesting value HOT 8
- ConnectionPool.close should take a callback HOT 1
- TS and TTL returned by row.forEach are incorrect HOT 3
- Problems with timeuuid, CQL3 and INSERT HOT 2
- Adding support for removing multiple columns HOT 7
- Exceptions being thrown when callbacks should suffice — intended? HOT 1
- Connection Pool only using one member HOT 1
- Selecting empty/null collection columns cause "Cannot read property 'length' of null" exceptions HOT 5
- Thrift column family issue. HOT 5
- How to insert an entity containing a collection item, say a set or list? HOT 3
- CQL3 UUID type does not work HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from helenus.