Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-4291

Oversize integer in CQL throws NumberFormatException

Agile BoardAttach filesAttach ScreenshotBulk Copy AttachmentsBulk Move AttachmentsVotersWatch issueWatchersCreate sub-taskConvert to sub-taskMoveLinkCloneLabelsUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.0.11, 1.1.1
    • Legacy/CQL
    • Low

    Description

      In CQL, the parser does not handle an oversize Integer, the client socket get closed and an exception is output in the log.

      cqlsh:TEST1> select count(*) from Items limit 10000000000000;
      TSocket read 0 bytes
      cqlsh:TEST1> select count(*) from Items limit 1;
      TSocket read 0 bytes
      ERROR 02:51:28,600 Error occurred during processing of message.
      java.lang.NumberFormatException: For input string: "10000000000"
      	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
      	at java.lang.Integer.parseInt(Integer.java:461)
      	at java.lang.Integer.parseInt(Integer.java:499)
      	at org.apache.cassandra.cql.CqlParser.selectStatement(CqlParser.java:631)
      	at org.apache.cassandra.cql.CqlParser.query(CqlParser.java:221)
      	at org.apache.cassandra.cql.QueryProcessor.getStatement(QueryProcessor.java:951)
      	at org.apache.cassandra.cql.QueryProcessor.process(QueryProcessor.java:873)
      	at org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1234)
      	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3542)
      	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3530)
      	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:184)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      	at java.lang.Thread.run(Thread.java:662)
      

      The INTEGER type in Cql.g matches digits but not to any particular limit.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            dbrosius David Brosius Assign to me
            ssadler Scott Sadler
            David Brosius
            Pavel Yaskevich
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment