[jira] [Updated] (CASSANDRA-5382) ConcurrentModificantionException on server when multiple CQL3 read requests received on single column family simultaneously.

2013-03-26 Thread Sylvain Lebresne (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-5382:


Attachment: 0001-Copy-ResultSet-in-makeCountResult.txt

From a quick check the only place I see the metadata list being modified after 
Metadata creation is in makeCountResult. Even if I've missed another spot, not 
copying in makeCountResult was bad so attaching a simple patch to fix that.

 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


[jira] [Updated] (CASSANDRA-5382) ConcurrentModificantionException on server when multiple CQL3 read requests received on single column family simultaneously.

2013-03-25 Thread Jason Reber (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-5382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Reber updated CASSANDRA-5382:
---

Summary: ConcurrentModificantionException on server when multiple CQL3 read 
requests received on single column family simultaneously.  (was: 
ConcurrentModificantionException on server when multiple read CQL3 read 
requests recieved on single column family simultaneously.)

 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

 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