[erlang-patches] Better printouts from AC in case of errors

Tomas Pihl <>
Sun Jan 15 14:16:04 CET 2012


I got fed up with those pesky little 'Kernel pid terminated' and I
couldn't figure out what was going on, so I did some digging in
application_master/supervisor and came up with the below patch.

As IO for some reason is blocked during these early phases, the use of
error_loggger is of no use so instead I send Reason up the chain and
let application_controller use it. As can be seen from the below
printouts, running with the patch makes it fairly easy to see the
problem I'm having here (a missing dependency to SSL).

No patch:

Erlang R15B (erts-5.9) [source] [smp:8:8] [async-threads:5] [hipe]
[kernel-poll:false]

=INFO REPORT==== 15-Jan-2012::12:50:15 ===
    application: topi
    exited: {shutdown,{topi_app,start,[normal,[]]}}
    type: permanent
{"Kernel pid terminated",application_controller,"{application_start_failure,topi,{shutdown,{topi_app,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller)
({application_start_failure,topi,{shutdown,{topi_app,start,[normal,[]]}}})

And with the patch applied:

Erlang R15B (erts-5.9) [source] [smp:8:8] [async-threads:5] [hipe]
[kernel-poll:false]

=INFO REPORT==== 15-Jan-2012::12:52:34 ===
    application: topi
    exited: {{undef,
                 [{ssl,listen,
                      [8043,
                       [inet,
              .
              .
              .
    type: permanent

{"Kernel pid terminated",application_controller,"{application_start_failure,topi,{{undef,[{ssl,listen,[8043,[inet,{ip,{0,0,0,0}},
....

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller)
({application_start_failure,topi,{{undef,[{ssl,listen,[8043,[inet,{ip,{0,0,0,0}},
...


git fetch :dozepih/otp.git supervisor_pass_on_errors

https://github.com/dozepih/otp/tree/supervisor_pass_on_errors

  /topi


More information about the erlang-patches mailing list