[erlang-questions] how to get stacktraces of all processes?

Serge Aleynikov <>
Sun Sep 19 13:34:26 CEST 2010


Anton,

This type of behavior is usually indicative of the fact that your 
application has a deadlock.  During startup application_controller 
starts all applications in your release file synchronously one by one. 
If any one application has a deadlock, it locks the application_controller.

The most probable cause of a deadlock during startup of an application 
is when it tries to issue gen_server:call/3 call from within 
gen_server's init/1 callback.  Check for that.

Also make sure you included sasl application.  What I normally do is 
start your emulator using "-boot start_sasl", and then start the 
debugger (debugger:start()), include the application's modules in the 
debugger's list of files to watch for, and set up a breakpoint in the 
supervisor's init call, so that I can walk through the application 
startup process.  Then spotting the deadlock becomes quite straight forward.

Serge

On 9/17/2010 1:09 AM, mabrek wrote:
> Hello.
>
> I've got application that hangs on startup.
> I tried several alternatives. Appmon doesn't show unstarted
> applications. Pman shows only start function and current function for
> process, but I want full stacktraces. i() is similar to pman.
> erlang:process_display gives quite obscure output, process_info(..,
> [backtrace]) is the same.
> Is there a way to get full stacktraces of all processes in VM?
>
> Best regards,
> Anton Lebedevich.
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>


More information about the erlang-questions mailing list