You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Alexey Radkov (JIRA)" <ji...@apache.org> on 2014/05/11 11:05:14 UTC

[jira] [Created] (THRIFT-2528) Thrift Erlang Library: Multiple thrift applications in one bundle

Alexey Radkov created THRIFT-2528:
-------------------------------------

             Summary: 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)