You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Дмитрий Шохов <sh...@gmail.com> on 2014/01/10 14:08:09 UTC

java.lang.StackOverflowError with big IN list

Hello I'm getting stack overflow when running prepared queries with IN
parameter and binding big list in it. Is it known limitation and I must
implement manual paging or change logic to get around this, or is it some
bug maybe...

java.lang.StackOverflowError
        at
org.apache.cassandra.utils.FastByteComparisons$LexicographicalComparerHolder$UnsafeComparer.compareTo(FastByteComparisons.java:110)
        at
org.apache.cassandra.utils.FastByteComparisons.compareTo(FastByteComparisons.java:41)
        at
org.apache.cassandra.utils.FBUtilities.compareUnsigned(FBUtilities.java:216)
        at
org.apache.cassandra.utils.ByteBufferUtil.compareUnsigned(ByteBufferUtil.java:89)
        at
org.apache.cassandra.db.marshal.LongType.compareLongs(LongType.java:54)
        at
org.apache.cassandra.db.marshal.LongType.compare(LongType.java:36)
        at
org.apache.cassandra.db.marshal.LongType.compare(LongType.java:28)
        at
org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:170)
        at
org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:152)
        at
org.apache.cassandra.db.ArrayBackedSortedColumns.getColumn(ArrayBackedSortedColumns.java:89)
        at
org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:825)
        at
org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
        at
org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
        at
org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
        at .... many more same line stack elements

Cassandra 2.0.4 Java driver 2.0 rc2

Re: java.lang.StackOverflowError with big IN list

Posted by Robert Wille <rw...@fold3.com>.
I had a problem in my code that produced a big IN list (several tens of
thousands). I got a timeout error, not a stack overflow. 2.0.4 with java
driver 2.0 rc3.

From:  Dave Brosius <db...@mebigfatguy.com>
Reply-To:  <us...@cassandra.apache.org>
Date:  Friday, January 10, 2014 at 5:53 PM
To:  <us...@cassandra.apache.org>
Subject:  Re: java.lang.StackOverflowError with big IN list

  
 
In the mean time you can try upping the value of your -Xss setting in
cassandra-env.sh to see if just a little push will take the problem away.
 
 On 01/10/2014 10:18 AM, Дмитрий Шохов wrote:
 
 
>  
> https://issues.apache.org/jira/browse/CASSANDRA-6567
>  
> 
>  
>  
> Thank you!
>  
>  
> 
>  
>  
>  2014/1/10 Benedict Elliott Smith <be...@datastax.com>
>  
>>  
>> It must be a very large IN clause, which is probably not advisable. But it
>> shouldn't cause this error, and since it's an easy fix to prevent it, if you
>> file a JIRA I'll post a patch.
>>  
>>  
>>  
>>  
>>  
>>  
>> On 10 January 2014 13:08, Дмитрий Шохов <sh...@gmail.com> wrote:
>>  
>>>  
>>> Hello I'm getting stack overflow when running prepared queries with IN
>>> parameter and binding big list in it. Is it known limitation and I must
>>> implement manual paging or change logic to get around this, or is it some
>>> bug maybe...  
>>>  
>>>  
>>>  
>>>  
>>> java.lang.StackOverflowError
>>>  
>>>         at 
>>> org.apache.cassandra.utils.FastByteComparisons$LexicographicalComparerHolder
>>> $UnsafeComparer.compareTo(FastByteComparisons.java:110)
>>>  
>>>         at 
>>> org.apache.cassandra.utils.FastByteComparisons.compareTo(FastByteComparisons
>>> .java:41)
>>>  
>>>         at 
>>> org.apache.cassandra.utils.FBUtilities.compareUnsigned(FBUtilities.java:216)
>>>  
>>>         at 
>>> org.apache.cassandra.utils.ByteBufferUtil.compareUnsigned(ByteBufferUtil.jav
>>> a:89)
>>>  
>>>         at 
>>> org.apache.cassandra.db.marshal.LongType.compareLongs(LongType.java:54)
>>>  
>>>         at 
>>> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:36)
>>>  
>>>         at 
>>> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:28)
>>>  
>>>         at 
>>> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSor
>>> tedColumns.java:170)
>>>  
>>>         at 
>>> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSor
>>> tedColumns.java:152)
>>>  
>>>         at 
>>> org.apache.cassandra.db.ArrayBackedSortedColumns.getColumn(ArrayBackedSorted
>>> Columns.java:89)
>>>  
>>>         at 
>>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectS
>>> tatement.java:825)
>>>  
>>>         at 
>>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectS
>>> tatement.java:826)
>>>  
>>>         at 
>>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectS
>>> tatement.java:826)
>>>  
>>>         at 
>>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectS
>>> tatement.java:826)
>>>  
>>>         at .... many more same line stack elements
>>>  
>>>  
>>>  
>>> 
>>>  
>>>  
>>> Cassandra 2.0.4 Java driver 2.0 rc2
>>>  
>>>  
>>  
>>  
>>  
>>  
>>  
>>  
>  
>  
>  
>  
 
 



Re: java.lang.StackOverflowError with big IN list

Posted by Dave Brosius <db...@mebigfatguy.com>.
In the mean time you can try upping the value of your -Xss setting in 
cassandra-env.sh to see if just a little push will take the problem away.

On 01/10/2014 10:18 AM, Дмитрий Шохов wrote:
> https://issues.apache.org/jira/browse/CASSANDRA-6567
>
> Thank you!
>
>
> 2014/1/10 Benedict Elliott Smith <belliottsmith@datastax.com 
> <ma...@datastax.com>>
>
>     It must be a very large IN clause, which is probably not
>     advisable. But it shouldn't cause this error, and since it's an
>     easy fix to prevent it, if you file a JIRA I'll post a patch.
>
>
>     On 10 January 2014 13:08, Дмитрий Шохов <shohou@gmail.com
>     <ma...@gmail.com>> wrote:
>
>         Hello I'm getting stack overflow when running prepared queries
>         with IN parameter and binding big list in it. Is it known
>         limitation and I must implement manual paging or change logic
>         to get around this, or is it some bug maybe...
>
>         java.lang.StackOverflowError
>                 at
>         org.apache.cassandra.utils.FastByteComparisons$LexicographicalComparerHolder$UnsafeComparer.compareTo(FastByteComparisons.java:110)
>                 at
>         org.apache.cassandra.utils.FastByteComparisons.compareTo(FastByteComparisons.java:41)
>                 at
>         org.apache.cassandra.utils.FBUtilities.compareUnsigned(FBUtilities.java:216)
>                 at
>         org.apache.cassandra.utils.ByteBufferUtil.compareUnsigned(ByteBufferUtil.java:89)
>                 at
>         org.apache.cassandra.db.marshal.LongType.compareLongs(LongType.java:54)
>                 at
>         org.apache.cassandra.db.marshal.LongType.compare(LongType.java:36)
>                 at
>         org.apache.cassandra.db.marshal.LongType.compare(LongType.java:28)
>                 at
>         org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:170)
>                 at
>         org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:152)
>                 at
>         org.apache.cassandra.db.ArrayBackedSortedColumns.getColumn(ArrayBackedSortedColumns.java:89)
>                 at
>         org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:825)
>                 at
>         org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>                 at
>         org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>                 at
>         org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>                 at .... many more same line stack elements
>
>         Cassandra 2.0.4 Java driver 2.0 rc2
>
>
>


Re: java.lang.StackOverflowError with big IN list

Posted by Дмитрий Шохов <sh...@gmail.com>.
https://issues.apache.org/jira/browse/CASSANDRA-6567

Thank you!


2014/1/10 Benedict Elliott Smith <be...@datastax.com>

> It must be a very large IN clause, which is probably not advisable. But it
> shouldn't cause this error, and since it's an easy fix to prevent it, if
> you file a JIRA I'll post a patch.
>
>
> On 10 January 2014 13:08, Дмитрий Шохов <sh...@gmail.com> wrote:
>
>> Hello I'm getting stack overflow when running prepared queries with IN
>> parameter and binding big list in it. Is it known limitation and I must
>> implement manual paging or change logic to get around this, or is it some
>> bug maybe...
>>
>> java.lang.StackOverflowError
>>         at
>> org.apache.cassandra.utils.FastByteComparisons$LexicographicalComparerHolder$UnsafeComparer.compareTo(FastByteComparisons.java:110)
>>         at
>> org.apache.cassandra.utils.FastByteComparisons.compareTo(FastByteComparisons.java:41)
>>         at
>> org.apache.cassandra.utils.FBUtilities.compareUnsigned(FBUtilities.java:216)
>>         at
>> org.apache.cassandra.utils.ByteBufferUtil.compareUnsigned(ByteBufferUtil.java:89)
>>         at
>> org.apache.cassandra.db.marshal.LongType.compareLongs(LongType.java:54)
>>         at
>> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:36)
>>         at
>> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:28)
>>         at
>> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:170)
>>         at
>> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:152)
>>         at
>> org.apache.cassandra.db.ArrayBackedSortedColumns.getColumn(ArrayBackedSortedColumns.java:89)
>>         at
>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:825)
>>         at
>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>>         at
>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>>         at
>> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>>         at .... many more same line stack elements
>>
>> Cassandra 2.0.4 Java driver 2.0 rc2
>>
>
>

Re: java.lang.StackOverflowError with big IN list

Posted by Benedict Elliott Smith <be...@datastax.com>.
It must be a very large IN clause, which is probably not advisable. But it
shouldn't cause this error, and since it's an easy fix to prevent it, if
you file a JIRA I'll post a patch.


On 10 January 2014 13:08, Дмитрий Шохов <sh...@gmail.com> wrote:

> Hello I'm getting stack overflow when running prepared queries with IN
> parameter and binding big list in it. Is it known limitation and I must
> implement manual paging or change logic to get around this, or is it some
> bug maybe...
>
> java.lang.StackOverflowError
>         at
> org.apache.cassandra.utils.FastByteComparisons$LexicographicalComparerHolder$UnsafeComparer.compareTo(FastByteComparisons.java:110)
>         at
> org.apache.cassandra.utils.FastByteComparisons.compareTo(FastByteComparisons.java:41)
>         at
> org.apache.cassandra.utils.FBUtilities.compareUnsigned(FBUtilities.java:216)
>         at
> org.apache.cassandra.utils.ByteBufferUtil.compareUnsigned(ByteBufferUtil.java:89)
>         at
> org.apache.cassandra.db.marshal.LongType.compareLongs(LongType.java:54)
>         at
> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:36)
>         at
> org.apache.cassandra.db.marshal.LongType.compare(LongType.java:28)
>         at
> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:170)
>         at
> org.apache.cassandra.db.ArrayBackedSortedColumns.binarySearch(ArrayBackedSortedColumns.java:152)
>         at
> org.apache.cassandra.db.ArrayBackedSortedColumns.getColumn(ArrayBackedSortedColumns.java:89)
>         at
> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:825)
>         at
> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>         at
> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>         at
> org.apache.cassandra.cql3.statements.SelectStatement$1$1.computeNext(SelectStatement.java:826)
>         at .... many more same line stack elements
>
> Cassandra 2.0.4 Java driver 2.0 rc2
>