[erlang-bugs] net_kernel hang, perhaps blocked by busy_dist_port race?
Scott Lystig Fritchie
fritchie@REDACTED
Sun May 16 02:07:01 CEST 2010
Following up on my previous message ... I've been able to duplicate
this bug, whee! I'm going to try to create a mostly-automatable recipe
to make it easier for others to try to reproduce.
-Scott
Got msg {monitor,<0.21.0>,busy_dist_port,#Port<0.547>}
Got msg {monitor,<0.40.0>,busy_dist_port,#Port<0.547>}
Got msg {monitor,<0.40.0>,busy_dist_port,#Port<0.547>}
Got msg {monitor,<0.21.0>,busy_dist_port,#Port<0.547>}
Got msg {nodedown,goofus@REDACTED,
[{nodedown_reason,connection_closed},{node_type,visible}]}
User switch command
--> s
--> c
Eshell V5.7.5 (abort with ^G)
(bar@REDACTED)1> whereis(net_kernel).
<0.21.0>
(bar@REDACTED)2> process_info(whereis(net_kernel)).
[{registered_name,net_kernel},
{current_function,{erlang,bif_return_trap,1}},
{initial_call,{proc_lib,init_p,5}},
{status,suspended},
{message_queue_len,147},
{messages,[tick,tick,tick,tick,
{'EXIT',<0.57.0>,connection_closed},
tick,tick,tick,tick,tick,tick,
{accept,<0.22.0>,#Port<0.549>,inet,tcp},
tick,tick,tick,tick,tick,tick,tick,tick,tick|...]},
{links,[<0.23.0>,<0.75.0>,<0.18.0>,<0.22.0>,#Port<0.62>]},
{dictionary,[{'$ancestors',[net_sup,kernel_sup,<0.9.0>]},
{longnames,false},
{'$initial_call',{net_kernel,init,1}}]},
{trap_exit,true},
{error_handler,error_handler},
{priority,max},
{group_leader,<0.8.0>},
{total_heap_size,1974},
{heap_size,1597},
{stack_size,12},
{reductions,502181},
{garbage_collection,[{min_bin_vheap_size,46368},
{min_heap_size,233},
{fullsweep_after,65535},
{minor_gcs,825}]},
{suspending,[]}]
(bar@REDACTED)3> Bt1 = process_info(whereis(net_kernel), backtrace).
<<"...">>
(bar@REDACTED)6> io:format("~s\n", [element(2,Bt1)]).
Program counter: 0x08243388 (unknown function)
CP: 0xb76cd7b4 (gen_server:reply/2 + 104)
arity = 1
{#Ref<6666.0.0.35773>,yes}
0xb48893ec Return addr 0xb76cf9f4 (gen_server:handle_msg/5 + 424)
y(0) Catch 0xb76cd7b4 (gen_server:reply/2 + 104)
0xb48893f4 Return addr 0xb76a5258 (proc_lib:init_p_do_apply/3 + 28)
y(0) net_kernel
y(1) []
y(2) net_kernel
y(3) <0.18.0>
y(4) []
y(5) []
y(6) {state,bar,'bar@REDACTED',shortnames,{tick,<0.23.0>,5000},7000,sys_dist,[{<0.75.0>,'foo@REDACTED'},{<0.57.0>,'goofus@REDACTED'}],[],[{listen,#Port<0.62>,<0.22.0>,{net_address,{{0,0,0,0},48326},"bb3",tcp,inet},inet_tcp_dist}],[],0,all}
0xb4889414 Return addr 0x0824852c (<terminate process normally>)
y(0) Catch 0xb76a5268 (proc_lib:init_p_do_apply/3 + 44)
ok
More information about the erlang-bugs
mailing list