gun
gun copied to clipboard
function not exported {gun_http,ws_send,6}
Hello, I've got into problems with gun, getting error during WebSocket communication:
05:02:57.569 [error] (<0.6553.0>) gen_statem <0.6553.0> in state connected terminated with reason: {{'function not exported',{gun_http,ws_send,6}},state_functions}
05:02:57.571 [error] (<0.6553.0>) gun_http:ws_send() CRASH REPORT Process <0.6553.0> with 0 neighbours crashed with reason: call to undefined function gun_http:ws_send({text,<<68,73,83,67,79,78,78,69,67,84,10,114,101,99,101,105,112,116,58,49,54,57,56,48,51,55,10,...>>}, {http_state,{sslsocket,{gen_tcp,#Port<0.427>,tls_connection,undefined},[<0.7039.0>,<0.7038.0>]},...}, #Ref<0.677379504.1938030593.128067>, <0.6552.0>, gun_default_event_h, undefined)
05:02:57.571 [error] (<0.408.0>) gun_http:ws_send() Supervisor gun_conns_sup had child gun started with {gun,start_link,undefined} at <0.6553.0> exit with reason call to undefined function gun_http:ws_send({text,<<68,73,83,67,79,78,78,69,67,84,10,114,101,99,101,105,112,116,58,49,54,57,56,48,51,55,10,...>>}, {http_state,{sslsocket,{gen_tcp,#Port<0.427>,tls_connection,undefined},[<0.7039.0>,<0.7038.0>]},...}, #Ref<0.677379504.1938030593.128067>, <0.6552.0>, gun_default_event_h, undefined) in context child_terminated
crash.log:
2023-10-23 07:02:37 =ERROR REPORT====
** State machine <0.7478.0> terminating
** Last event = {cast,{ws_send,<0.7477.0>,#Ref<0.909301808.2701131777.67881>,{text,<<68,73,83,67,79,78,78,69,67,84,10,114,101,99,101,105,112,116,58,49,54,57,56,48,52,53,10,10,0,10>>}}}
** When server state = {connected,{state,<0.7477.0>,{up,#Ref<0.909301808.2701131777.67863>},"websocket-server-fqdn-address",443,<<"https">>,"websocket-server-fqdn-address",443,[],#{retry => 10,retry_timeout => 10000,transport => tls},undefined,{sslsocket,{gen_tcp,#Port<0.462>,tls_connection,undefined},[<0.7749.0>,<0.7748.0>]},gun_tls,true,{ssl,ssl_closed,ssl_error},gun_http,{http_state,{sslsocket,{gen_tcp,#Port<0.462>,tls_connection,undefined},[<0.7749.0>,<0.7748.0>]},gun_tls,#{},'HTTP/1.1',keepalive,<<>>,undefined,[],head,{0,0},head},undefined,gun_default_event_h,undefined}}
** Reason for termination = error:{'function not exported',{gun_http,ws_send,6}}
** Callback modules = [gun]
** Callback mode = state_functions
** Stacktrace =
** [{gun,connected,3,[{file,"/home/.../_build/default/lib/gun/src/gun.erl"},{line,1335}]},{gen_statem,loop_state_callback,11,[{file,"gen_statem.erl"},{line,1426}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]
2023-10-23 07:02:37 =CRASH REPORT====
crasher:
initial call: gun:init/1
pid: <0.7478.0>
registered_name: []
exception error: {undef,[{gun_http,ws_send,[{text,<<68,73,83,67,79,78,78,69,67,84,10,114,101,99,101,105,112,116,58,49,54,57,56,48,52,53,10,10,0,10>>},{http_state,{sslsocket,{gen_tcp,#Port<0.462>,tls_connection,undefined},[<0.7749.0>,<0.7748.0>]},gun_tls,#{},'HTTP/1.1',keepalive,<<>>,undefined,[],head,{0,0},head},#Ref<0.909301808.2701131777.67881>,<0.7477.0>,gun_default_event_h,undefined],[]},{gun,connected,3,[{file,"/home/.../_build/default/lib/gun/src/gun.erl"},{line,1335}]},{gen_statem,loop_state_callback,11,[{file,"gen_statem.erl"},{line,1426}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
ancestors: [gun_conns_sup,gun_sup,<0.406.0>]
message_queue_len: 1
messages: [{'DOWN',#Ref<0.909301808.2701131777.67863>,process,<0.7477.0>,{shutdown,game_over}}]
links: [<0.408.0>]
dictionary: []
trap_exit: false
status: running
heap_size: 2586
stack_size: 28
reductions: 40211
neighbours:
2023-10-23 07:02:37 =SUPERVISOR REPORT====
Supervisor: {local,gun_conns_sup}
Context: child_terminated
Reason: {undef,[{gun_http,ws_send,[{text,<<68,73,83,67,79,78,78,69,67,84,10,114,101,99,101,105,112,116,58,49,54,57,56,48,52,53,10,10,0,10>>},{http_state,{sslsocket,{gen_tcp,#Port<0.462>,tls_connection,undefined},[<0.7749.0>,<0.7748.0>]},gun_tls,#{},'HTTP/1.1',keepalive,<<>>,undefined,[],head,{0,0},head},#Ref<0.909301808.2701131777.67881>,<0.7477.0>,gun_default_event_h,undefined],[]},{gun,connected,3,[{file,"/home/.../_build/default/lib/gun/src/gun.erl"},{line,1335}]},{gen_statem,loop_state_callback,11,[{file,"gen_statem.erl"},{line,1426}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}
Offender: [{pid,<0.7478.0>},{id,gun},{mfargs,{gun,start_link,undefined}},{restart_type,temporary},{significant,false},{shutdown,5000},{child_type,worker}]
I hope this can identify the problem.
I do use last (hex.pm) version of gun, dependency defined in rebar.config
{gun, "2.0.1"}
on Debian Bookworm, Erlang version 1:25.2.3+dfsg-1