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

Alexey Radkov commented on THRIFT-2528:
---------------------------------------

I found a better solution that does not require patching: run one of API on a 
slave node.

> Thrift Erlang Library: Multiple thrift applications in one bundle
> -----------------------------------------------------------------
>
>                 Key: THRIFT-2528
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2528
>             Project: Thrift
>          Issue Type: Bug
>          Components: Erlang - Library
>            Reporter: Alexey Radkov
>            Priority: Minor
>         Attachments: thrift-appreg.patch
>
>
> Probably this is rather a wish than a bug. Also i found the multiplex task 
> for Erlang [https://issues.apache.org/jira/browse/THRIFT-2110] that relates 
> to this but seems to be slightly different.
> I need two thrift applications running in one bundle: a library API, say 
> _rsappapi_ and a test API _rstestapi_: the former is needed to set up the 
> library API configuration via thrift calls. Currently it is not feasible 
> because thrift application registers in {{start_link()}} with predefined name 
> in {{lib/erl/src/thrift_server.erl}}:
> {code}
> gen_server:start_link({local, ?SERVER}, ?MODULE, {Port, Service, 
> HandlerModule}, []).
> {code}
> and i got {{already_started}} exception:
> {noformat}
> =PROGRESS REPORT==== 11-May-2014::12:26:32 ===
>          application: rsappapi
>           started_at: rstestapi@desktop
> =SUPERVISOR REPORT==== 11-May-2014::12:26:32 ===
>      Supervisor: {local,rstestapi_sup}
>      Context:    start_error
>      Reason:     {already_started,<0.53.0>}
>      Offender:   [{pid,undefined},
>                   {name,rstestapi_service},
>                   {mfargs,{rstestapi_service,start_link,[]}},
>                   {restart_type,permanent},
>                   {shutdown,2000},
>                   {child_type,worker}]
> =CRASH REPORT==== 11-May-2014::12:26:32 ===
>   crasher:
>     initial call: application_master:init/4
>     pid: <0.55.0>
>     registered_name: []
>     exception exit: {{shutdown,
>                          {failed_to_start_child,rstestapi_service,
>                              {already_started,<0.53.0>}}},
>                      {rstestapi_app,start,[normal,[]]}}
>       in function  application_master:init/4 (application_master.erl, line 
> 133)
>     ancestors: [<0.54.0>]
>     messages: [{'EXIT',<0.56.0>,normal}]
>     links: [<0.54.0>,<0.7.0>]
>     dictionary: []
>     trap_exit: true
>     status: running
>     heap_size: 610
>     stack_size: 27
>     reductions: 130
>   neighbours:
> =INFO REPORT==== 11-May-2014::12:26:33 ===
>     application: rstestapi
>     exited: {{shutdown,
>                  {failed_to_start_child,rstestapi_service,
>                      {already_started,<0.53.0>}}},
>              {rstestapi_app,start,[normal,[]]}}
>     type: temporary
> {noformat}
> I attached a patch that fixes this issue for me. It just replaces constant 
> {{?SERVER}} with the variable {{Service}} which normally has 
> well-distinguished name like _tSomeService_thrift_ and should not mess in 
> Erlang applications names.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to