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

Radoslaw Gruchalski commented on THRIFT-3159:
---------------------------------------------

[~nsaoly] Of course it will. That's the whole point of Erlang. Let it crash. 
You should either crete your your worker in such way that it can be respawned 
upon error or code to detect wrong input. Here, in your example, you are 
calling an undefined function on a module. I am sorry but this is how erlang 
works. Try this:

{{gen_udp:meh()}}

I twill crash. For exactly the same reason at the thrift module. No way you can 
prevent that. It is up to you to ensure that you handle this error. This is 
just how erlang works.

> Thrift erlang thrift_socket_server crashes
> ------------------------------------------
>
>                 Key: THRIFT-3159
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3159
>             Project: Thrift
>          Issue Type: Bug
>          Components: Erlang - Library
>    Affects Versions: 0.9.2, 0.9.3, 1.0
>         Environment: Linux clean.bandit 3.19.5-200.fc21.x86_64 #1 SMP Mon Apr 
> 20 19:51:56 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
> cat /etc/fedora-release    Fedora release 21 (Twenty One)
> erl -version    Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 6.3
> ➜  thrifter  erl                    
> Erlang/OTP 17 [erts-6.3] [source] [64-bit] [smp:8:8] [async-threads:10] 
> [hipe] [kernel-poll:false]
> Eshell V6.3  (abort with ^G)
> 1> 
>            Reporter: jeet parmar
>
> Using tutorial.thrift and tutorial for Erlang, when I am using any unexported 
> module it crashes the app and genserver. Instead, it should not crash and 
> report an error.
> I used 
> https://git1-us-west.apache.org/repos/asf?p=thrift.git;a=tree;f=tutorial/erl;h=a8821bf47084a57e9f6526ed49212d7c7663f8fc;hb=HEAD
> for the server.erl source 
> {code}
> Erlang/OTP 17 [erts-6.3] [source] [64-bit] [smp:8:8] [async-threads:10] 
> [hipe] [kernel-poll:true]
> Eshell V6.3  (abort with ^G)
> 1> server:start().
> {ok,<0.34.0>}
> =INFO REPORT==== 16-May-2015::17:41:27 ===
> thrift service listening on port 99992> server:unexportedmod().  
> =ERROR REPORT==== 16-May-2015::17:41:59 ===
> ** Generic server tutorial_server terminating 
> ** Last message in was {'EXIT',<0.32.0>,
>                            {undef,
>                                [{server,unexportedmod,[],[]},
>                                 {erl_eval,do_apply,6,
>                                     [{file,"erl_eval.erl"},{line,661}]},
>                                 {shell,exprs,7,
>                                     [{file,"shell.erl"},{line,684}]},
>                                 {shell,eval_exprs,7,
>                                     [{file,"shell.erl"},{line,639}]},
>                                 {shell,eval_loop,3,
>                                     [{file,"shell.erl"},{line,624}]}]}}
> ** When Server state == {thrift_socket_server,9999,calculator_thrift,server,
>                             {local,tutorial_server},
>                             2048,any,#Port<0.732>,<0.35.0>,
>                             [{recv_timeout,500}],
>                             false}
> ** Reason for termination == 
> ** {'function not exported',
>        [{server,unexportedmod,[],[]},
>         {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,661}]},
>         {shell,exprs,7,[{file,"shell.erl"},{line,684}]},
>         {shell,eval_exprs,7,[{file,"shell.erl"},{line,639}]},
>         {shell,eval_loop,3,[{file,"shell.erl"},{line,624}]}]}
> ** exception error: undefined function server:unexportedmod/0
> 3> 
> {code}



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

Reply via email to