[erlang-questions] ETS delete_trap

Brujo Benavides fernando.benavides@REDACTED
Tue Apr 26 03:23:05 CEST 2016


Not sure if this will be much help, but just out of curiosity I grepped otp codebase to see if I could find that function, but the only place it pops up is in erl_db.c[1] and I don’t really understand that code.
Maybe some devs with c-trained eyes will be more suited to help you, James.

[1] https://github.com/erlang/otp/blob/e1489c448b7486cdcfec6a89fea238d88e6ce2f3/erts/emulator/beam/erl_db.c#L3038

> On Apr 25, 2016, at 20:30, James Aimonetti <james@REDACTED> wrote:
> 
> Signed PGP part
> We have a process, basically a gen_server with some AMQP stuff added
> in (a behaviour we call gen_listener) that is getting a backed up
> message queue, which obviously kills the VM after a short time.
> 
> The curious bit that I can't really figure out is the
> {current_function, {ets,delete_trap,1}} bit from the process_info/1
> call (output below). As far as I can tell, that is buried in the VM's
> C code.
> 
> The process itself wraps an ETS table and provides a LRU-style cache
> with AMQP bindings to programmatically flush entries based on AMQP
> events elsewhere in the system.
> 
> Any thoughts on what delete_trap is doing and why it appears to
> dead-lock the process? Or perhaps where to look to mitigate this?
> 
> > process_info(Pid).
> [{registered_name,my_process_name},
> {current_function,{ets,delete_trap,1}},
> {initial_call,{proc_lib,init_p,5}},
> {status,runnable},
> {message_queue_len,1586057},
> {message_queue, [...huge...]},
> {links,[<0.3239.0>]},
> {dictionary,
> [{'$ancestors',[whistle_couch_sup,<0.3227.0>]},
> {callid,<<"3fc98d435ea14ab7">>},
> {'$initial_call',{gen_listener,init,1}}]},
> {trap_exit,true},
> {error_handler,error_handler},
> {priority,normal},
> {group_leader,<0.3226.0>},
> {total_heap_size,462590525},
> {heap_size,145962050},
> {stack_size,24},
> {reductions,71467274818},
> {garbage_collection,
> [{min_bin_vheap_size,46368},
> {min_heap_size,233},
> {fullsweep_after,65535},
> {minor_gcs,1}]},
> {suspending,[]}]
> 
> --
> James Aimonetti
> Lead Systems Architect / Impressionable Scallywag
> "If Dialyzer doesn't care, I don't care"
> 
> 2600HzPDX | http://2600hz.com
> sip:james@REDACTED
> tel:415.886.7905
> irc:mc_ @ freenode
> 
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list