thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roberto Aloi <roberto.a...@erlang-solutions.com>
Subject Re: Function clause on "oneway_void" [Thrift-Erlang]
Date Mon, 06 Sep 2010 11:36:26 GMT
Sure:

=ERROR REPORT==== 6-Sep-2010::12:34:41 ===
oneway void feedback_fragment threw error which must be ignored: {error,
                                                                  function_clause,
                                                                  [{thrift_protocol,
                                                                    term_to_typeid,
                                                                    [oneway_void]},
                                                                   {thrift_protocol,
                                                                    struct_write_loop,
                                                                    3},
                                                                   {thrift_protocol,
                                                                    write,2},
                                                                   {thrift_processor,
                                                                    send_reply,
                                                                    4},
                                                                   {thrift_processor,
                                                                    handle_function,
                                                                    2},
                                                                   {thrift_processor,
                                                                    loop,1}]}


Roberto Aloi
@prof3ta
http://aloiroberto.wordpress.com

----- "David Reiss" <dreiss@facebook.com> wrote:

> Can you include the full stack trace?
> 
> On 09/02/2010 10:41 AM, Roberto Aloi wrote:
> > Hi all,
> > 
> > I'm using a "oneway" modifier in one my Thrift function
> definitions:
> > 
> > ...
> > oneway void secret_function(1: string x, 2: string y),
> > ...
> > 
> > When generating the respective Erlang code via Thrift, this is
> translated into:
> > 
> > ...
> > function_info('secret_function', reply_type) ->
> >   oneway_void;
> > function_info('secret_function', exceptions) ->
> >   {struct, []};
> > ...
> > 
> > Please note the "oneway_void" atom there.
> > 
> > When the "secret_function" function is executed, I get the following
> error:
> > 
> > =ERROR REPORT==== 2-Sep-2010::18:17:08 ===
> > oneway void secret_function threw error which must be ignored:
> {error,
> >                                                                  
> function_clause,
> >                                                                  
> [{thrift_protocol,
> >                                                                    
> term_to_typeid,
> >                                                                    
> [oneway_void]}, ...
> > 
> > Independently from the possible bugs contained in the user code,
> here the thrift_protocol:term_to_typeid/1 function is being called
> with the oneway_void atom as an argument, which causes a function
> clause. In fact, reading from the code (thrift_protocol.erl):
> > 
> > ...
> > term_to_typeid(void) -> ?tType_VOID;
> > term_to_typeid(bool) -> ?tType_BOOL;
> > term_to_typeid(byte) -> ?tType_BYTE;
> > term_to_typeid(double) -> ?tType_DOUBLE;
> > term_to_typeid(i16) -> ?tType_I16;
> > term_to_typeid(i32) -> ?tType_I32;
> > term_to_typeid(i64) -> ?tType_I64;
> > term_to_typeid(string) -> ?tType_STRING;
> > term_to_typeid({struct, _}) -> ?tType_STRUCT;
> > term_to_typeid({map, _, _}) -> ?tType_MAP;
> > term_to_typeid({set, _}) -> ?tType_SET;
> > term_to_typeid({list, _}) -> ?tType_LIST.
> > ...
> > 
> > A bug? Any other explanation? Why is "oneway_void" being passed to
> that function?
> > 
> > Regards,
> > 
> > Roberto Aloi

-- 
University of Kent - Erlang Solutions Ltd.
Blog: http://aloiroberto.wordpress.com
Twitter: @prof3ta


Mime
View raw message