You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vijay (JIRA)" <ji...@apache.org> on 2009/07/21 01:56:14 UTC

[jira] Created: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Thrift client forwarding the null keys to the servers
-----------------------------------------------------

                 Key: CASSANDRA-308
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.3
         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
            Reporter: Vijay
            Priority: Minor


Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 

client logs are like the below: (Java client lib)
org.apache.thrift.TApplicationException: Internal error processing get_slice
        at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
        at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
        at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
        at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
        at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
        at com.webex.dms.repository.Document.readBasic(Document.java:307)

Server Logs are as below:
DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
java.lang.NullPointerException
        at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
        at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
        at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
        at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
        at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
        at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Sergio Bossa (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743706#action_12743706 ] 

Sergio Bossa commented on CASSANDRA-308:
----------------------------------------

Jonathan,

so should it, in your opinion, be resolved by patching the CassandraServer?

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743710#action_12743710 ] 

Jonathan Ellis commented on CASSANDRA-308:
------------------------------------------

No.

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748852#action_12748852 ] 

Hudson commented on CASSANDRA-308:
----------------------------------

Integrated in Cassandra #180 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/180/])
    update to thrift trunk and rename jar after the svn revision (806014).  inline our map typedef to work around regression introduced in THRIFT-144.  add slf4j dependencies (required since THRIFT-558).  regenerate thrift structs with new version.
patch by jbellis for , CASSANDRA-387


> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reopened CASSANDRA-308:
--------------------------------------


still not null checking method parameters

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308-v2.patch, 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-308:
-------------------------------------

    Attachment: 308-v2.patch

v2 adds null-checking to method parameters, as generated by the patch to THRIFT-575.

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308-v2.patch, 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis resolved CASSANDRA-308.
--------------------------------------

    Resolution: Fixed

committed

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Eric Evans (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12748922#action_12748922 ] 

Eric Evans commented on CASSANDRA-308:
--------------------------------------

+1

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Hudson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12749119#action_12749119 ] 

Hudson commented on CASSANDRA-308:
----------------------------------

Integrated in Cassandra #181 (See [http://hudson.zones.apache.org/hudson/job/Cassandra/181/])
    add "required" to non-optional fields. Thrift sucks.
patch by jbellis; reviewed by Eric Evans for 


> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-308:
-------------------------------------

    Attachment: 308.patch

Making "not optional" imply "required" was apparently too much of a leap for dreiss of Thrift.  (See THRIFT-562, THRIFT-455.)  This patch adds `required` boilerplate to all such fields.

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743246#action_12743246 ] 

Jonathan Ellis commented on CASSANDRA-308:
------------------------------------------

The real fix is for the server to do the validation; we don't want to rely on the client since there are so many implementations of such widely varying maturity.

I've attached a patch for this to THRIFT-562.

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Priority: Minor
>             Fix For: 0.5
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-308:
-------------------------------------

    Fix Version/s:     (was: 0.5)
                   0.4
         Assignee: Jonathan Ellis

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743711#action_12743711 ] 

Jonathan Ellis commented on CASSANDRA-308:
------------------------------------------

To clarify: it should be resolved by having the Cassandra.java code generated by Thrift do the checking, not the hand-coded CassandraServer.java.

> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (CASSANDRA-308) Thrift client forwarding the null keys to the servers

Posted by "Sammy Yu (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751054#action_12751054 ] 

Sammy Yu commented on CASSANDRA-308:
------------------------------------

+1


> Thrift client forwarding the null keys to the servers
> -----------------------------------------------------
>
>                 Key: CASSANDRA-308
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-308
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.3
>         Environment: Centos 3.0, cassendra trunk, JVM 1.6, tomcat 1.6
>            Reporter: Vijay
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.4
>
>         Attachments: 308-v2.patch, 308.patch
>
>
> Thrift client is suppose to validate the input before it actually sends it to the server but it did not.... 
> client logs are like the below: (Java client lib)
> org.apache.thrift.TApplicationException: Internal error processing get_slice
>         at org.apache.thrift.TApplicationException.read(TApplicationException.java:107)
>         at org.apache.cassandra.service.Cassandra$Client.recv_get_slice(Cassandra.java:178)
>         at org.apache.cassandra.service.Cassandra$Client.get_slice(Cassandra.java:154)
>         at com.webex.dms.datastore.DataStoreRead.readObject(DataStoreRead.java:163)
>         at com.webex.dms.repository.ReadDocument.load(ReadDocument.java:87)
>         at com.webex.dms.repository.Document.readBasic(Document.java:307)
> Server Logs are as below:
> DEBUG [pool-1-thread-448] 2009-07-20 09:27:50,831 CassandraServer.java (line 172) get_slice_from
> ERROR [pool-1-thread-448] 2009-07-20 09:27:50,837 Cassandra.java (line 844) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.service.ThriftValidation.validateKey(ThriftValidation.java:18)
>         at org.apache.cassandra.service.CassandraServer.readColumnFamily(CassandraServer.java:75)
>         at org.apache.cassandra.service.CassandraServer.get_slice(CassandraServer.java:181)
>         at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:838)
>         at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:796)
>         at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.