Skip to content

Having trouble starting up ecpool in a simple Erlang program #51

@marceln

Description

@marceln

I'm having issues setting up a basic pool. I'm using this code in my supervisor initialization:

init([]) ->
    PoolSize = 10,
    Urls = ["localhost:27017"],
    Database = "test",
    Username = "test",
    Password = "test",
    Type = single,

    % Define the worker arguments
    WorkerArgs = [
        {hosts, Urls},
        {database, Database},
        {login, Username},
        {password, Password},
        {type, Type}
    ],

    PoolOptions = [
        {pool_size, PoolSize},
        {auto_reconnect, 1},
        {options, []},
        {worker_options, WorkerArgs}
    ],

    PoolSpec = ecpool:pool_spec(?APP, ?APP, mongo_client, PoolOptions),

    {ok, {{one_for_all, 10, 100}, [PoolSpec]}}. 

However, I keep getting this undef error and I can't figure out what's the source of it. Do you have any hints?

Eshell V15.0.1 (press Ctrl+G to abort, type help(). for help)
=CRASH REPORT==== 29-Aug-2024::16:19:21.153000 ===
  crasher:
    initial call: ecpool_worker:init/1
    pid: <0.253.0>
    registered_name: []
    exception exit: undef
      in function  gen_server:init_it/6 (gen_server.erl, line 2038)
    ancestors: [<0.252.0>,<0.250.0>,mongo_app_sup,<0.248.0>]
    message_queue_len: 0
    messages: []
    links: [<0.252.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 233
    stack_size: 29
    reductions: 103
  neighbours:

=SUPERVISOR REPORT==== 29-Aug-2024::16:19:21.158000 ===
    supervisor: {<0.252.0>,ecpool_worker_sup}
    errorContext: start_error
    reason: undef
    offender: [{pid,undefined},
               {id,{worker,1}},
               {mfargs,
                   {ecpool_worker,start_link,
                       [mongo_app,1,mongo_client,
                        [{pool_size,10},
                         {auto_reconnect,1},
                         {options,[]},
                         {worker_options,
                             [{hosts,["localhost:27017"]},
                              {database,"test"},
                              {login,"test"},
                              {password,"test"},
                              {type,single}]}]]}},
               {restart_type,transient},
               {significant,false},
               {shutdown,5000},
               {child_type,worker}]

=SUPERVISOR REPORT==== 29-Aug-2024::16:19:21.158000 ===
    supervisor: {<0.250.0>,ecpool_pool_sup}
    errorContext: start_error
    reason: {shutdown,{failed_to_start_child,{worker,1},undef}}
    offender: [{pid,undefined},
               {id,worker_sup},
               {mfargs,
                   {ecpool_worker_sup,start_link,
                       [mongo_app,mongo_client,
                        [{pool_size,10},
                         {auto_reconnect,1},
                         {options,[]},
                         {worker_options,
                             [{hosts,["localhost:27017"]},
                              {database,"test"},
                              {login,"test"},
                              {password,"test"},
                              {type,single}]}]]}},
               {restart_type,transient},
               {significant,false},
               {shutdown,infinity},
               {child_type,supervisor}]

=SUPERVISOR REPORT==== 29-Aug-2024::16:19:21.158000 ===
    supervisor: {local,mongo_app_sup}
    errorContext: start_error
    reason: {shutdown,
                {failed_to_start_child,worker_sup,
                    {shutdown,{failed_to_start_child,{worker,1},undef}}}}
    offender: [{pid,undefined},
               {id,mongo_app},
               {mfargs,
                   {ecpool,start_pool,
                       [mongo_app,mongo_client,
                        [{pool_size,10},
                         {auto_reconnect,1},
                         {options,[]},
                         {worker_options,
                             [{hosts,["localhost:27017"]},
                              {database,"test"},
                              {login,"test"},
                              {password,"test"},
                              {type,single}]}]]}},
               {restart_type,permanent},
               {significant,false},
               {shutdown,5000},
               {child_type,supervisor}]

=INFO REPORT==== 29-Aug-2024::16:19:21.158000 ===
    application: mongo_app
    exited: {{shutdown,
                 {failed_to_start_child,mongo_app,
                     {shutdown,
                         {failed_to_start_child,worker_sup,
                             {shutdown,
                                 {failed_to_start_child,{worker,1},undef}}}}}},
             {mongo_app_app,start,[normal,[]]}}
    type: temporary

=CRASH REPORT==== 29-Aug-2024::16:19:21.158000 ===
  crasher:
    initial call: application_master:init/3
    pid: <0.247.0>
    registered_name: []
    exception exit: {{shutdown,
                      {failed_to_start_child,mongo_app,
                       {shutdown,
                        {failed_to_start_child,worker_sup,
                         {shutdown,
                          {failed_to_start_child,{worker,1},undef}}}}}},
                     {mongo_app_app,start,[normal,[]]}}
      in function  application_master:init/3 (application_master.erl, line 143)
    ancestors: [application_controller,<0.10.0>]
    message_queue_len: 1
    messages: [{'EXIT',<0.248.0>,normal}]
    links: [<0.45.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 376
    stack_size: 29
    reductions: 70
  neighbours:

=INFO REPORT==== 29-Aug-2024::16:19:21.165000 ===
    application: ecpool
    exited: stopped
    type: temporary

=INFO REPORT==== 29-Aug-2024::16:19:21.171000 ===
    application: gproc
    exited: stopped
    type: temporary

=INFO REPORT==== 29-Aug-2024::16:19:21.176000 ===
    application: mongodb
    exited: stopped
    type: temporary

=INFO REPORT==== 29-Aug-2024::16:19:21.176000 ===
    application: pbkdf2
    exited: stopped
    type: temporary

=INFO REPORT==== 29-Aug-2024::16:19:21.176000 ===
    application: poolboy
    exited: stopped
    type: temporary

=INFO REPORT==== 29-Aug-2024::16:19:21.176000 ===
    application: bson
    exited: stopped
    type: temporary

===> Booted sasl
===> Failed to boot mongo_app for reason {{shutdown,
                                           {failed_to_start_child,mongo_app,
                                            {shutdown,
                                             {failed_to_start_child,
                                              worker_sup,
                                              {shutdown,
                                               {failed_to_start_child,
                                                {worker,1},
                                                undef}}}}}},
                                          {mongo_app_app,start,[normal,[]]}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions