[ 
https://issues.apache.org/jira/browse/THRIFT-2954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14296504#comment-14296504
 ] 

Nitin Kumar commented on THRIFT-2954:
-------------------------------------

I think i need to put some example:

idl file contains

service InterfacesService {

  RetStatus V4InterfaceAdd( 1: string if_name, 2: i32 unit, 3: string prefix, 
4: i32 prefix_len,
  ) throws (1:InvalidInterfaceException ae);

  bool V4InterfaceDelete(
    1: string if_name, 2: i32 unit, 3: string prefix, 4: i32 prefix_len);

client.py:

try:
    intf.V4InterfaceAdd('ge-0/0/45', 0, '10.209.11.176', '25') #notice last 
parameter is called as string
except Exception as ex:
    print ex.message
intf.V4InterfaceDelete('ge-0/0/45', 0, '10.209.11.176', 24)

2nd function gives "TSocket read 0 bytes" error as connection is already lost 
(due to 1st funtion)

> calling function with parameter type different as defined in idl breaks the 
> connection
> --------------------------------------------------------------------------------------
>
>                 Key: THRIFT-2954
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2954
>             Project: Thrift
>          Issue Type: Bug
>    Affects Versions: 0.9.2
>         Environment: tried with python server/client and also with c++ server 
> with python client
>            Reporter: Nitin Kumar
>            Priority: Critical
>
> say my idl (.thrift) file defines a function
> void fn(1: string if_name);
> if I call this function as fn(3) the connection get closed, hence not 
> allowing next set of function to be called. (function call has been kept 
> within exception handling)
> but for other cases like if we call this function with 2 params in place of 1 
> as expected by function. it just thrown exception but does not close the 
> connection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to