[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:
ets:i().
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).
undefined
4> probe_db_manager:sonde_in_last_probe().
** exception exit: {noproc,{gen_server,call,
[probe_db_manager,sonde_in_last_probe]}}
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)).
[{current_function,{gen_server,loop,6}},
{initial_call,{proc_lib,init_p,5}},
{status,waiting},
{message_queue_len,0},
{messages,[]},
{links,[<0.107.0>]},
{dictionary,[{'$ancestors',[starter_sonda,<0.47.0>]},
{'$initial_call',{probe_db_manager,init,1}}]},
{trap_exit,false},
{error_handler,error_handler},
{priority,normal},
{group_leader,<0.46.0>},
{total_heap_size,1974},
{heap_size,987},
{stack_size,9},
{reductions,233278},
{garbage_collection,[{min_bin_vheap_size,46368},
{min_heap_size,233},
{fullsweep_after,65535},
{minor_gcs,845}]},
{suspending,[]}]
7> is_process_alive(pid(0, 122,0)).
true
8> sys:get_status(pid(0, 122, 0)).
{status,<0.122.0>,
{module,gen_server},
[[{'$ancestors',[starter_sonda,<0.47.0>]},
{'$initial_call',{probe_db_manager,init,1}}],
running,<0.107.0>,[],
[{header,"Status for generic server probe_db_manager"},
{data,[{"Status",running},
{"Parent",<0.107.0>},
{"Logged events",[]}]},
{data,[{"State","1-VENERA-20110718150001"}]}]]}
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?
Thanks,
Carlo
More information about the erlang-questions
mailing list