cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-5382) ConcurrentModificantionException on server when multiple CQL3 read requests received on single column family simultaneously.
Date Tue, 26 Mar 2013 15:37:15 GMT

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

Jonathan Ellis commented on CASSANDRA-5382:
-------------------------------------------

+1
                
> ConcurrentModificantionException on server when multiple CQL3 read requests received
on single column family simultaneously.
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-5382
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5382
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.2.3
>         Environment: SLES, Sun JDK 1.6.0_43
>            Reporter: Jason Reber
>            Priority: Minor
>         Attachments: 0001-Copy-ResultSet-in-makeCountResult.txt
>
>
> The exception below is thrown on the server when two reads are performed at the exact
same time on the same column family. This causes the query to fail. 
> The problem appears to be caused by the 'name' list in org.apache.cassandra.cql3.ResultSet$Metadata.
The reference is passed in to the constructor and iterated without copying and without a synch
block. When two of these ResultSet instances are created from the same metadata list at the
same time, a ConcurrentModificationException is thrown.
> The error:
> ERROR [Thrift:860] 2013-03-25 09:27:39,467 CustomTThreadPoolServer.java (line 217) Error
occurred during processing of message.
> java.util.ConcurrentModificationException
>         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>         at java.util.AbstractList$Itr.next(AbstractList.java:343)
>         at org.apache.cassandra.cql3.ResultSet$Metadata.allInSameCF(ResultSet.java:237)
>         at org.apache.cassandra.cql3.ResultSet$Metadata.<init>(ResultSet.java:219)
>         at org.apache.cassandra.cql3.ResultSet.<init>(ResultSet.java:47)
>         at org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.<init>(Selection.java:239)
>         at org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.<init>(Selection.java:221)
>         at org.apache.cassandra.cql3.statements.Selection.resultSetBuilder(Selection.java:211)
>         at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:655)
>         at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:147)
>         at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:136)
>         at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:62)
>         at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132)
>         at org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:254)
>         at org.apache.cassandra.thrift.CassandraServer.execute_prepared_cql3_query(CassandraServer.java:1851)
>         at org.apache.cassandra.thrift.Cassandra$Processor$execute_prepared_cql3_query.getResult(Cassandra.java:4166)
>         at org.apache.cassandra.thrift.Cassandra$Processor$execute_prepared_cql3_query.getResult(Cassandra.java:4154)
>         at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
>         at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
>         at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>         at java.lang.Thread.run(Thread.java:662)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message