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

Reply via email to