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

CQL schema parser fails on startup when system locale set to tr_TR.UTF-8 with SyntaxException: "no viable alternative at character 'ı'"

    XMLWordPrintableJSON

Details

    • Code
    • Normal
    • Normal
    • User Report
    • All
    • None

    Description

      Fresh installation of Cassandra 5.0 fails to start with the following error:

      ERROR [main] 2024-09-25 14:50:58,401 CassandraDaemon.java:900 - Exception encountered during startup
      java.lang.ExceptionInInitializerError: null
          at org.apache.cassandra.service.CassandraDaemon.setupVirtualKeyspaces(CassandraDaemon.java:575)
          at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:286)
          at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:744)
          at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:878)
      Caused by: org.apache.cassandra.exceptions.SyntaxException: Failed parsing CREATE TABLE: [CREATE TABLE streaming (  id timeuuid,
        follower boolean,
        operation text, 
        peers frozen<list<text>>,
        status text,
        progress_percentage float,
        last_updated_at timestamp,
        duration_millis bigint,
        failure_cause text,
        success_message text,
      
        bytes_to_receive bigint, 
        bytes_received bigint, 
        bytes_to_send bigint, 
        bytes_sent bigint, 
        files_to_receive bigint, 
        files_received bigint, 
        files_to_send bigint, 
        files_sent bigint, 
      
        status_ınıt_timestamp timestamp,
        status_start_timestamp timestamp,
        status_success_timestamp timestamp,
        status_faılure_timestamp timestamp,
      
      PRIMARY KEY ((id)))] reason: SyntaxException line 21:9 no viable alternative at character 'ı'
          at org.apache.cassandra.cql3.CQLFragmentParser.parseAny(CQLFragmentParser.java:48)
          at org.apache.cassandra.cql3.statements.schema.CreateTableStatement.parse(CreateTableStatement.java:465)
          at org.apache.cassandra.db.virtual.StreamingVirtualTable.<init>(StreamingVirtualTable.java:37)
          at org.apache.cassandra.db.virtual.SystemViewsKeyspace.<init>(SystemViewsKeyspace.java:47)
          at org.apache.cassandra.db.virtual.SystemViewsKeyspace.<clinit>(SystemViewsKeyspace.java:26)
          ... 4 common frames omitted
      

       
      So, I changed my system language, re-created and deleted locales (switched from tr_TR.UTF-8 to en_US.UTF-8), and changed it from GNOME Settings too.

      I use Ubuntu 24.02. In this error you see 'ı' (a Turkish character, i but without dot) used and Java basically couldn't find an alternative for 'ı' but the question is I just installed Cassandra. I didn't create this table. This is probably for Cassandra and created automatically (I haven't used Cassandra, this was about to be my first time but as you can see I got error).

      Also, I tried other stable version 41x, same result. I completely removed /var/lib/cassandra and /var/log cassandra before install too.

      My solution (I am currently trying to test): adding Locale.US to all toLowerCase(), toUpperCase() etc. Because my keyboard map affects it. I think we can fix this with this way.
       

      Attachments

        Activity

          People

            atailh4n Ata İlhan Köktürk
            atailh4n Ata İlhan Köktürk
            Ata İlhan Köktürk
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: