[erlang-questions] ets and zombie process

Carlo Bertoldi carlo.bertoldi@REDACTED
Mon Jul 18 15:54:34 CEST 2011

Hello list,
  I have problem, as usual ;), this time with a process that refuses to die.
This particular process is the owner of an ets table:
  id              name              type        size   mem      owner
  sonde_in        sonde_in          ordered_set 1131   165217   <0.122.0>

In the meanwhile. the owner process crashed, let's check:
3> whereis(probe_db_manager).
4> probe_db_manager:sonde_in_last_probe().
** exception exit: {noproc,{gen_server,call,
      in function  gen_server:call/2

Ok, it is pushing daisies, but then why is the ets table still 
available? That made me suspicious, so I've checked running processes, 
and it's still there:
5> i().
<0.122.0>             probe_db_manager:init/1                987 
233278    0
                       gen_server:loop/6                  9

So, to double check:
6> process_info(pid(0, 122,0)).
7> is_process_alive(pid(0, 122,0)).
8> sys:get_status(pid(0, 122, 0)).
          [{header,"Status for generic server probe_db_manager"},
                  {"Logged events",[]}]},

Parent is the supervisor.

So, why the process <0.122.0> is in this sort of limbo?
What do I have to do to make sure that after a crash it really goes away?


More information about the erlang-questions mailing list