You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Chris Goffinet (JIRA)" <ji...@apache.org> on 2010/01/18 21:16:54 UTC

[jira] Created: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

Some Thrift Exceptions not passed down to Client
------------------------------------------------

                 Key: CASSANDRA-711
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
             Project: Cassandra
          Issue Type: Bug
    Affects Versions: 0.6
            Reporter: Chris Goffinet
            Priority: Minor
             Fix For: 0.6


We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:

org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)

Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.


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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Nicholas Telford commented on CASSANDRA-711:
--------------------------------------------

Another example of this:

ERROR - Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Required field 'timestamp' was not found in serialized data! Struct: Column(name:null, value:null, timestamp:0)
	at org.apache.cassandra.service.Column.read(Column.java:382)
	at org.apache.cassandra.service.SuperColumn.read(SuperColumn.java:317)
	at org.apache.cassandra.service.ColumnOrSuperColumn.read(ColumnOrSuperColumn.java:295)
	at org.apache.cassandra.service.Cassandra$batch_insert_args.read(Cassandra.java:10447)
	at org.apache.cassandra.service.Cassandra$Processor$batch_insert.process(Cassandra.java:1084)
	at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:817)
	at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:253)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:636)

Seems to arise when you don't pass a field that was marked as "required" in the structs Thrift interface spec. Thrift appears to do the checks on the server-side and not properly handle the exception.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Stu Hood commented on CASSANDRA-711:
------------------------------------

The patch for THRIFT-689 was committed in Thrift SVN r916825. What are the next steps here? Updating Cassandra's thrift to that exact revision?

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis commented on CASSANDRA-711:
------------------------------------------

can you include full ST?

it sounds like a thrift bug, not ours.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Priority: Minor
>             Fix For: 0.6
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Resolved: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis resolved CASSANDRA-711.
--------------------------------------

    Resolution: Fixed

Done, thanks for the Thrift help Stu.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis commented on CASSANDRA-711:
------------------------------------------

yeah, update and test for regressions :)

I'll do that today.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Assigned: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis reassigned CASSANDRA-711:
----------------------------------------

    Assignee: Jonathan Ellis

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Updated: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis updated CASSANDRA-711:
-------------------------------------

    Attachment: 711-test.txt

test to demonstrate problem.  may need rebasing.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis commented on CASSANDRA-711:
------------------------------------------

fix attached to THRIFT-689.

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Priority: Minor
>             Fix For: 0.6
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Jonathan Ellis commented on CASSANDRA-711:
------------------------------------------

yes, that is why I submitted a fix to thrift and linked the thrift ticket two comments above yours

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.6
>
>         Attachments: 711-test.txt
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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


[jira] Commented: (CASSANDRA-711) Some Thrift Exceptions not passed down to Client

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

Chris Goffinet commented on CASSANDRA-711:
------------------------------------------

You might be right... Hmm...

ERROR [pool-1-thread-34] 2010-01-18 12:13:35,252 TThreadPoolServer.java (line 257) Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
        at org.apache.cassandra.service.SliceRange.validate(SliceRange.java:587)
        at org.apache.cassandra.service.SliceRange.read(SliceRange.java:515)
        at org.apache.cassandra.service.SlicePredicate.read(SlicePredicate.java:366)
        at org.apache.cassandra.service.Cassandra$get_slice_args.read(Cassandra.java:3063)
        at org.apache.cassandra.service.Cassandra$Processor$get_slice.process(Cassandra.java:937)
        at org.apache.cassandra.service.Cassandra$Processor.process(Cassandra.java:895)
        at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:253)
        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:619)

> Some Thrift Exceptions not passed down to Client
> ------------------------------------------------
>
>                 Key: CASSANDRA-711
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-711
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.6
>            Reporter: Chris Goffinet
>            Priority: Minor
>             Fix For: 0.6
>
>
> We still don't pass all exceptions down to client via Thrift. We have seen a few of these when working on our client library:
> org.apache.thrift.protocol.TProtocolException: Required field 'start' was not present! Struct: SliceRange(start:null, finish:null, reversed:false, count:100)
> Would be good if those exceptions were passed down, instead of 'TSocket Read 0 Bytes'.

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