[ 
https://issues.apache.org/jira/browse/CASSANDRA-2401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015816#comment-13015816
 ] 

Tey Kar Shiang edited comment on CASSANDRA-2401 at 4/6/11 5:53 AM:
-------------------------------------------------------------------

Hi Roland,

Sure, as we are trying to do that. In the mean time, I would like to update you 
more about our findings:
We built a test case on the PC with the existing DB and to produce same issue, 
without hector API. The test case works (able to create null exception) on the 
original PC. 

java.lang.NullPointerException
        at 
org.apache.cassandra.db.ColumnFamilyStore.satisfies(ColumnFamilyStore.java:1787)
        at 
org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1727)
        at TestScan.main(TestScan.java:74)

line 1787: IColumn column = data.getColumn(expression.column_name); where data 
is NULL


Zipping the 0.7.4 cassandra data to another new PC gives the same issue, but 
the missing key order may slightly different, e.g. on original PC it is at 
430th, on the new PC it is 431th. Both keys appears to be same though (content 
in ByteBuffer).
(Edited: the new PC also found the problem - which makes more sense)

We will continue to check if it is due to the "if (column.isMarkedForDelete())" 
is not working on the PC with have the null encountered. Since we checked that, 
both PCs have the same number of columns returned in "scan" method at line 
"ColumnFamily indexRow = indexCFS.getColumnFamily(indexFilter);", where 
"indexRow.getColumnCount()" both giving 1996, with some rows already deleted as 
tombstones. 


      was (Author: karshiang):
    Hi Roland,

Sure, as we are trying to do that. In the mean time, I would like to update you 
more about our findings:
We built a test case on the PC with the existing DB and to produce same issue, 
without hector API. The test case works (able to create null exception) on the 
original PC. However, if we zip the 0.7.4 cassandra data to another new PC, 
running the same code will not see the null. 

java.lang.NullPointerException
        at 
org.apache.cassandra.db.ColumnFamilyStore.satisfies(ColumnFamilyStore.java:1787)
        at 
org.apache.cassandra.db.ColumnFamilyStore.scan(ColumnFamilyStore.java:1727)
        at TestScan.main(TestScan.java:74)

line 1787: IColumn column = data.getColumn(expression.column_name); where data 
is NULL


We will continue to check if it is due to the "if (column.isMarkedForDelete())" 
is not working on the PC with have the null encountered. Since we checked that, 
both PCs have the same number of columns returned in "scan" method at line 
"ColumnFamily indexRow = indexCFS.getColumnFamily(indexFilter);", where 
"indexRow.getColumnCount()" both giving 1996, with some rows already deleted as 
tombstones. 

  
> getColumnFamily() return null, which is not checked in ColumnFamilyStore.java 
> scan() method, causing Timeout Exception in query
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-2401
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2401
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.7.4
>         Environment: Hector 0.7.0-28, Cassandra 0.7.4, Windows 7, Eclipse
>            Reporter: Tey Kar Shiang
>
> ColumnFamilyStore.java, line near 1680, "ColumnFamily data = 
> getColumnFamily(new QueryFilter(dk, path, firstFilter))", the data is 
> returned null, causing NULL exception in "satisfies(data, clause, primary)" 
> which is not captured. The callback got timeout and return a Timeout 
> exception to Hector.
> The data is empty, as I traced, I have the the columns Count as 0 in 
> removeDeletedCF(), which return the null there. (I am new and trying to 
> understand the logics around still). Instead of crash to NULL, could we 
> bypass the data?
> About my test:
> A stress-test program to add, modify and delete data to keyspace. I have 30 
> threads simulate concurrent users to perform the actions above, and do a 
> query to all rows periodically. I have Column Family with rows (as File) and 
> columns as index (e.g. userID, fileType).
> No issue on the first day of test, and stopped for 3 days. I restart the test 
> on 4th day, 1 of the users failed to query the files (timeout exception 
> received). Most of the users are still okay with the query.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to