[
https://issues.apache.org/jira/browse/CASSANDRA-1623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922568#action_12922568
]
Hudson commented on CASSANDRA-1623:
-----------------------------------
Integrated in Cassandra #570 (See
[https://hudson.apache.org/hudson/job/Cassandra/570/])
fix potential infinite loop in 2ary index queries
patch by jbellis; tested by Jason Tanner for CASSANDRA-1623
> BUG: secondaryIndexes AND multiple index expressions can cause timesouts
> -------------------------------------------------------------------------
>
> Key: CASSANDRA-1623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1623
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.7 beta 2
> Environment: centos 5.5
> Reporter: Jason Tanner
> Assignee: Jonathan Ellis
> Fix For: 0.7.0
>
> Attachments: 1623.txt
>
>
> 1. Given this Column Family definition
> Column Family Name: Requests
> Column Family Type: Standard
> Column Sorted By: org.apache.cassandra.db.marshal.UTF8Type
> Column Metadata:
> Column Name: requested
> Validation Class: org.apache.cassandra.db.marshal.UTF8Type
> Index Type: KEYS
> Column Name: requestor
> Validation Class: org.apache.cassandra.db.marshal.UTF8Type
> Index Type: KEYS
> If I have an entry that has the following column/value pairs:
> "request-uuid1" : [ { "requested","person-uuid1" }, {
> "requestor","person-uuid2"}, { "is_confirmed","true" } ]
> If I do an index lookup (pseudo coded) :
> get_index_slices( Connection,
> ColumnParent.column_family="Requests",
> [ { "requested","eq", "person-uuid1" }, {
> "is_confirmed","eq", "false" } ], % Index Expressions
> "",100, % StartKey, KeyCount
> "","",false,100 % StartCol, EndCol,
> Reversed, ColCount )
> for "requested" = "person-uuid1" and "is_confirmed" = false
> then I get the following entries in my log and the request times out along
> with all other requests on all clients.
> DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,878 CassandraServer.java (line
> 531) scan
> DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,897 StorageProxy.java (line 563)
> restricted single token match for query [0,0]
> DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,897 StorageProxy.java (line 649)
> scan ranges are [0,0]
> DEBUG [pool-1-thread-10] 2010-10-15 19:00:27,925 StorageProxy.java (line 669)
> reading org.apache.cassandra.db.indexscancomm...@42a6eb from
> 5...@localhost/127.0.0.1
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,931 SliceQueryFilter.java (line 121)
> collecting 0 of 1: null:false:0...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,933 SliceQueryFilter.java (line 121)
> collecting 0 of 2147483647: is_confirmed:false:4...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,934 SliceQueryFilter.java (line 121)
> collecting 1 of 2147483647: request_type:false:6...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,935 SliceQueryFilter.java (line 121)
> collecting 2 of 2147483647: requested:false:5...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,935 SliceQueryFilter.java (line 121)
> collecting 3 of 2147483647: requested_network:false:5...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,936 SliceQueryFilter.java (line 121)
> collecting 4 of 2147483647: requestor:false:5...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,937 SliceQueryFilter.java (line 121)
> collecting 5 of 2147483647: requestor_network:false:5...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,942 SliceQueryFilter.java (line 121)
> collecting 0 of 1: null:false:0...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,943 SliceQueryFilter.java (line 121)
> collecting 0 of 1: null:false:0...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,945 SliceQueryFilter.java (line 121)
> collecting 0 of 1: null:false:0...@1287103291
> DEBUG [ReadStage:2] 2010-10-15 19:00:27,946 SliceQueryFilter.java (line 121)
> collecting 0 of 1: null:false:0...@1287103291
> this last line repeats forever until I stop the server.
> If instead I do the lookup where both terms match or just the last term
> matches then nothing goes wrong, I get a valid (empty or otherwise) result
> set.
> It only seems to happen if the 2nd expression does not match.
> I am using the very latest code from trunk.
> Jason
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.