Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kamailio 5.6.4 crash, probably related to nats module #3395

Closed
sznoname opened this issue Mar 17, 2023 · 6 comments
Closed

kamailio 5.6.4 crash, probably related to nats module #3395

sznoname opened this issue Mar 17, 2023 · 6 comments

Comments

@sznoname
Copy link
Contributor

Description

Troubleshooting

-->sip invite
        t_suspend()
        nats publish--->routeserver
                  <---route result
       t_continue()
but kamailio crash 

Reproduction

wget http://220.231.180.131:12295/kamailio-nats-routeserver.tar.gz
nats_url: nats://127.0.0.1:4222
start kamailio
go run routeserver.go
uac sip call kamailio, and kamailio crash

Debugging Data

(paste your debugging data here)

Log Messages

kamailio[2037]: INFO: <script>: nats payload received [{"jsonrpc":"2.0","method":"route","tindex":52750,"tlabel":650229805,"destination":"sip:
kamailio[2037]: INFO: <script>: tindex = 52750, tlabel = 650229805, destination = sip:192.168.31.96:5080
kamailio[2048]: CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 41
kamailio[2048]: DEBUG: <core> [core/tcp_main.c:3854]: handle_ser_child(): dead child 23, pid 2037 (shutting down?)
kamailio[2048]: DEBUG: <core> [core/io_wait.h:599]: io_watch_del(): DBG: io_watch_del (0x557342d36be0, 41, -1, 0x0) fd_no=37 called
kamailio[2011]: ALERT: <core> [main.c:774]: handle_sigs(): child process 2037 exited by a signal 11
kamailio[2011]: ALERT: <core> [main.c:777]: handle_sigs(): core was generated
kamailio[2011]: INFO: <core> [main.c:799]: handle_sigs(): terminating due to SIGCHLD
kamailio[2048]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2047]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2041]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2039]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2035]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2018]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2033]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2016]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2031]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2015]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2029]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2036]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2027]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2020]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2025]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2042]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2023]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2021]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2017]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2038]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2030]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2019]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2022]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2040]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2024]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2028]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2026]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2032]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2034]: INFO: <core> [main.c:854]: sig_usr(): signal 15 received
kamailio[2011]: DEBUG: <core> [core/sr_module.c:835]: destroy_modules(): starting modules destroy phase

SIP Traffic

(paste your sip traffic here)

Possible Solutions

Additional Information

  • Kamailio Version - output of kamailio -v
kamailio 5.6.4 (x86_64/linux)
nats-server: v2.9.15
nats.c: 3.6.1
libuv1-dev:amd64:1.44.2-1
  • Operating System:
Debian11
@henningw
Copy link
Contributor

Thanks for the report. Could you also please provide a backtrace, as described here

@sznoname
Copy link
Contributor Author

kamailio.cfg

### kamailio5.6.4

#!define MULTIDOMAIN 0

# - flags
#   FLT_ - per transaction (message) flags
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_NATS 5

#	FLB_ - per branch flags
#!define FLB_NATB 6
#!define FLB_NATSIPPING 7

debug=2
log_stderror=no
memdbg=5
memlog=5
log_facility=LOG_LOCAL0
log_prefix="{$mt $hdr(CSeq) $ci} "
children=4
auto_aliases=no
enable_sctp=no
# listen=udp:192.168.31.63:5060

# mpath="/usr/local/lib/kamailio/modules/"

loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "textopsx.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "cfg_rpc.so"
loadmodule "counters.so"
loadmodule "nathelper.so"
loadmodule "jansson.so"
loadmodule "nats.so"

# modparam("ctl", "binrpc", "unix:/run/kamailio/kamailio_ctl")

modparam("sanity", "autodrop", 0)

modparam("tm", "failure_reply_mode", 3)
modparam("tm", "fr_timer", 30000)
modparam("tm", "fr_inv_timer", 120000)

modparam("rr", "enable_full_lr", 0)
modparam("rr", "append_fromtag", 0)

modparam("registrar", "method_filtering", 1)
modparam("registrar", "max_expires", 3600)
modparam("registrar", "gruu_enabled", 0)
modparam("registrar", "use_path", 1)
modparam("registrar", "path_mode", 0)

modparam("usrloc", "timer_interval", 60)
modparam("usrloc", "timer_procs", 1)
modparam("usrloc", "use_domain", MULTIDOMAIN)
modparam("usrloc", "db_mode", 0)

modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
modparam("nathelper", "sipping_from", "sip:pinger@kamailio.org")
modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")

modparam("usrloc", "nat_bflag", FLB_NATB)

modparam("nats", "nats_url", "nats://127.0.0.1:4222")
modparam("nats", "subject_queue_group", "sipserver:group")

request_route {
	# per request initial checks
	route(REQINIT);

	# NAT detection
	route(NATDETECT);

	# CANCEL processing
	if (is_method("CANCEL")) {
		if (t_check_trans()) {
			route(RELAY);
		}
		exit;
	}

	if (!is_method("ACK")) {
		if(t_precheck_trans()) {
			t_check_trans();
			exit;
		}
		t_check_trans();
	}

	route(WITHINDLG);

	### only initial requests (no To tag)
	route(AUTH);

	remove_hf("Route");
	if (is_method("INVITE|SUBSCRIBE")) {
		record_route();
	}

	route(SIPOUT);

	# handle registrations
	route(REGISTRAR);

	if ($rU==$null) {
		sl_send_reply("484","Address Incomplete");
		exit;
	}

	if (is_method("INVITE")) {
		route(NATS);
	} else {
		sl_send_reply("200","OK");
	}
	return;
}

# Wrapper for relaying requests
route[RELAY] {
	if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {
		if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");
	}
	if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
		if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");
	}
	if (is_method("INVITE")) {
		if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");
	}

	if (!t_relay()) {
		sl_reply_error();
	}
	exit;
}

route[REQINIT] {
	# no connect for sending replies
	set_reply_no_connect();
	# enforce symmetric signaling
	# - send back replies to the source address of request
	force_rport();

	if (!mf_process_maxfwd_header("10")) {
		sl_send_reply("483","Too Many Hops");
		exit;
	}

	if(is_method("OPTIONS")) {
		sl_send_reply("200","Keepalive");
		exit;
	}

	if(!sanity_check("17895", "7")) {
		xlog("Malformed SIP request from $si:$sp\n");
		exit;
	}
}

route[WITHINDLG] {
	if (!has_totag()) return;

	if (loose_route()) {
		route(DLGURI);
		if (is_method("BYE")) {
			// setflag(FLT_ACC); # do accounting ...
			// setflag(FLT_ACCFAILED); # ... even if the transaction fails
			;
		} else if ( is_method("ACK") ) {
			# ACK is forwarded statelessly
			route(NATMANAGE);
		} else if ( is_method("NOTIFY") ) {
			# Add Record-Route for in-dialog NOTIFY as per RFC 6665.
			record_route();
		}
		route(RELAY);
		exit;
	}

	if (is_method("SUBSCRIBE") && uri == myself) {
		# in-dialog subscribe requests
		sl_send_reply("501","Not Implemented");
		exit;
	}
	if ( is_method("ACK") ) {
		if ( t_check_trans() ) {
			# no loose-route, but stateful ACK;
			# must be an ACK after a 487
			# or e.g. 404 from upstream server
			route(RELAY);
			exit;
		} else {
			# ACK without matching transaction ... ignore and discard
			exit;
		}
	}
	sl_send_reply("404","Not here");
	exit;
}

route[REGISTRAR] {
	if (!is_method("REGISTER")) return;

	if(isflagset(FLT_NATS)) {
		setbflag(FLB_NATB);
		# do SIP NAT pinging
		setbflag(FLB_NATSIPPING);
	}
	if (!save("location")) {
		sl_reply_error();
	}
	exit;
}

route[AUTH] {
	return;
}

route[NATDETECT] {
	if (nat_uac_test("19")) {
		if (is_method("REGISTER")) {
			fix_nated_register();
		} else {
			if(is_first_hop()) {
				set_contact_alias();
			}
		}
		setflag(FLT_NATS);
	}
	return;
}

route[NATMANAGE] {
	if (is_request()) {
		if(has_totag()) {
			if(check_route_param("nat=yes")) {
				setbflag(FLB_NATB);
			}
		}
	}
	if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return;

	if (is_request()) {
		if (!has_totag()) {
			if(t_is_branch_route()) {
				add_rr_param(";nat=yes");
			}
		}
	}
	if (is_reply()) {
		if(isbflagset(FLB_NATB)) {
			if(is_first_hop())
				set_contact_alias();
		}
	}

	if(isbflagset(FLB_NATB)) {
		# no connect message in a dialog involving NAT traversal
		if (is_request()) {
			if(has_totag()) {
				set_forward_no_connect();
			}
		}
	}

	return;
}

route[DLGURI] {
	if(!isdsturiset()) {
		handle_ruri_alias();
	}
	return;
}

route[SIPOUT] {
	if (uri==myself) return;

	append_hf("P-Hint: outbound\r\n");
	route(RELAY);
	exit;
}

branch_route[MANAGE_BRANCH] {
	xdbg("new branch [$T_branch_idx] to $ru\n");
	route(NATMANAGE);
	return;
}

reply_route {
	if(!sanity_check("17604", "6")) {
		xlog("Malformed SIP response from $si:$sp\n");
		drop;
	}
	return;
}

onreply_route[MANAGE_REPLY] {
	xdbg("incoming reply\n");
	if(status=~"[12][0-9][0-9]") {
		route(NATMANAGE);
	}
	return;
}

failure_route[MANAGE_FAILURE] {
	route(NATMANAGE);
	if (t_is_canceled()) exit;
	return;
}

route[NATS] {
	send_reply("100", "Suspending");
	# t_newtran();
	if (!t_suspend()) {
		xerr("[SUSPEND] failed suspending trasaction [$T(id_index):$T(id_label)]\n");
		send_reply("501", "Suspending error");
		exit;
	} else {
		jansson_set("string", "jsonrpc", "2.0", "$var(body)");
		jansson_set("string", "method", "route" ,"$var(body)");
		jansson_set("integer", "tindex", $T(id_index), "$var(body)");
		jansson_set("integer", "tlabel",  $T(id_label), "$var(body)");
		jansson_set("string", "from", $fu, "$var(body)");
		jansson_set("string", "to", $to, "$var(body)");
		xinfo("body = $var(body)\n");
		nats_publish("routeserver", "$var(body)");
		exit;
	}
}

event_route[nats:connected] {
	xinfo("nats connected!\n");
}

event_route[nats:disconnected] {
	xinfo("nats disconnected!\n");
}

event_route[nats:sipserver] {
	xinfo("nats payload received [$natsData]\n");
	if (!jansson_get("method", "$natsData", "$var(method)")) return;
	if ($var(method) != "route") return;
	if (!jansson_get("tindex", "$natsData", "$var(tindex)")) return;
	if (!jansson_get("tlabel", "$natsData", "$var(tlabel)")) return;
	if (!jansson_get("destination","$natsData", "$var(destination)")) return;

	xinfo("tindex = $var(tindex), tlabel = $var(tlabel), destination = $var(destination)\n");
	t_continue("$var(tindex)", "$var(tlabel)", "INVRESUME");
}

route[INVRESUME] {
	xinfo("INVRESUME, destination = $var(destination)\n");
	$du = $var(destination);
	route(RELAY);
}

@sznoname
Copy link
Contributor Author

sznoname commented Mar 18, 2023

warning: Can't open file /dev/zero (deleted) during file-backed mapping note processing
[New LWP 1226]
[New LWP 1220]
[New LWP 1225]
[New LWP 1224]
BFD: /lib/x86_64-linux-gnu/libm.so.6: unknown type [0x13] section `.relr.dyn'

warning: `/lib/x86_64-linux-gnu/libm.so.6': Shared library architecture unknown is not compatible with target architecture i386:x86-64.
BFD: /lib/x86_64-linux-gnu/libc.so.6: unknown type [0x13] section `.relr.dyn'

warning: `/lib/x86_64-linux-gnu/libc.so.6': Shared library architecture unknown is not compatible with target architecture i386:x86-64.
BFD: /lib64/ld-linux-x86-64.so.2: unknown type [0x13] section `.relr.dyn'

warning: `/lib64/ld-linux-x86-64.so.2': Shared library architecture unknown is not compatible with target architecture i386:x86-64.
BFD: /lib/x86_64-linux-gnu/libpthread.so.0: unknown type [0x13] section `.relr.dyn'

warning: `/lib/x86_64-linux-gnu/libpthread.so.0': Shared library architecture unknown is not compatible with target architecture i386:x86-64.
BFD: /lib/x86_64-linux-gnu/libdl.so.2: unknown type [0x13] section `.relr.dyn'

warning: `/lib/x86_64-linux-gnu/libdl.so.2': Shared library architecture unknown is not compatible with target architecture i386:x86-64.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `kamailio'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f1f4ff6ee02 in cfg_update_local (no_cbs=0) at ../../core/cfg/cfg_struct.h:366
366                     cfg_child_cb = cfg_child_cb->next;
[Current thread is 1 (Thread 0x7f1f4b5666c0 (LWP 1226))]
(gdb)
(gdb)
(gdb) bt
#0  0x00007f1f4ff6ee02 in cfg_update_local (no_cbs=0) at ../../core/cfg/cfg_struct.h:366
#1  0x00007f1f4ff7217a in t_continue_helper (hash_index=24430, label=441244223, rtact=0x7f1f50126560, cbname=0x0, cbparam=0x0, skip_timer=1) at t_suspend.c:190
#2  0x00007f1f4ff77f68 in t_continue (hash_index=24430, label=441244223, route=0x7f1f50126560) at t_suspend.c:600
#3  0x00007f1f4fe528f1 in w_t_continue (msg=0x7f1f4b565520, idx=0x7f1f500ea9b8 "Ha\022P\037\177", lbl=0x7f1f500dc248 "\020^\022P\037\177",
    rtn=0x7f1f500dc3a8 "p_\022P\037\177") at tmx_mod.c:844
#4  0x000055e0541b0ad3 in do_action (h=0x7f1f4b5653d0, a=0x7f1f50125bd8, msg=0x7f1f4b565520) at core/action.c:1097
#5  0x000055e0541bf19c in run_actions (h=0x7f1f4b5653d0, a=0x7f1f501184f0, msg=0x7f1f4b565520) at core/action.c:1584
#6  0x000055e0541bf952 in run_top_route (a=0x7f1f501184f0, msg=0x7f1f4b565520, c=0x0) at core/action.c:1669
#7  0x00007f1f4f9b71e2 in nats_run_cfg_route (rt=3, evname=0x7f1f4b80dfe8) at nats_mod.c:701
#8  0x00007f1f4f9ab75c in onMsg (nc=0x55e055c73dc0, sub=0x55e055c6fb50, msg=0x7f1f44009c50, closure=0x7f1f4b80dfd8) at nats_mod.c:86
#9  0x00007f1f4f978a4d in natsSub_deliverMsgs () from /usr/local/lib/libnats.so.3.6
#10 0x00007f1f4f981710 in _threadStart () from /usr/local/lib/libnats.so.3.6
#11 0x00007f1f508a8fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#12 0x00007f1f5092966c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb) bt full
#0  0x00007f1f4ff6ee02 in cfg_update_local (no_cbs=0) at ../../core/cfg/cfg_struct.h:366
        group = 0x0
        last_cb = 0x7f1f4b5a0c38
        prev_cb = 0x0
        __func__ = "cfg_update_local"
#1  0x00007f1f4ff7217a in t_continue_helper (hash_index=24430, label=441244223, rtact=0x7f1f50126560, cbname=0x0, cbparam=0x0, skip_timer=1) at t_suspend.c:190
        t = 0x55e055c73dc0
        backup_T = 0xffffffffffffffff
        backup_T_branch = -1
        faked_req = 0x7f1f4b565520
        brpl = 0x0
        erpl = 0x0
        faked_req_len = 0
        cancel_data = {cancel_bitmap = 1351750256, reason = {cause = 73, u = {text = {s = 0x7f1f4b564b20 "PKVK\037\177", len = 0}, e2e_cancel = 0x7f1f4b564b20,
              packed_hdrs = {s = 0x7f1f4b564b20 "PKVK\037\177", len = 0}}}}
        branch = 21984
        uac = 0x0
        ret = 0
        cb_type = 0
        msg_status = 1343079336
        last_uac_status = 0
        reply_status = 0
        do_put_on_wait = 0
        hdr = 0x7f1f50125f78
        prev = 0x0
        tmp = 0x0
        route_type_bk = 32543
        keng = 0x0
        evname = {s = 0x7f1f4ffb37b2 "tm:continue", len = 11}
        __func__ = "t_continue_helper"
#2  0x00007f1f4ff77f68 in t_continue (hash_index=24430, label=441244223, route=0x7f1f50126560) at t_suspend.c:600
No locals.
#3  0x00007f1f4fe528f1 in w_t_continue (msg=0x7f1f4b565520, idx=0x7f1f500ea9b8 "Ha\022P\037\177", lbl=0x7f1f500dc248 "\020^\022P\037\177",
    rtn=0x7f1f500dc3a8 "p_\022P\037\177") at tmx_mod.c:844
        tindex = 24430
        tlabel = 441244223
        rtname = {s = 0x7f1f50125f70 "INVRESUME", len = 9}
        act = 0x7f1f50126560
        ri = 11
        __func__ = "w_t_continue"
#4  0x000055e0541b0ad3 in do_action (h=0x7f1f4b5653d0, a=0x7f1f50125bd8, msg=0x7f1f4b565520) at core/action.c:1097
--Type <RET> for more, q to quit, c to continue without paging--
        ret = -5
        v = 0
        dst = {send_sock = 0x0, to = {s = {sa_family = 0, sa_data = '\000' <repeats 13 times>}, sin = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0},
              sin_zero = "\000\000\000\000\000\000\000"}, sin6 = {sin6_family = 0, sin6_port = 0, sin6_flowinfo = 0, sin6_addr = {__in6_u = {
                  __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, sin6_scope_id = 0}, sas = {
              ss_family = 0, __ss_padding = '\000' <repeats 70 times>, "d~Ucz(0(;8=$:$:$od~Ucn(0;?&(ifco", '\000' <repeats 15 times>, __ss_align = 0}}, id = 0,
          send_flags = {f = 0, blst_imask = 0}, proto = 0 '\000', proto_pad0 = 0 '\000', proto_pad1 = 0}
        tmp = 0x0
        new_uri = 0x0
        end = 0x2 <error: Cannot access memory at address 0x2>
        crt = 0x0
        cmd = 0x7f1f500b03b8
        len = 0
        user = 0
        uri = {user = {s = 0x7f1f44009c50 "", len = 1353699246}, passwd = {s = 0x5 <error: Cannot access memory at address 0x5>, len = 0}, host = {
            s = 0x7f1f5082a398 "xd", len = 1350941904}, port = {s = 0x0, len = 1263948288}, params = {s = 0x7f1f4b5653a0 "\300TVK\037\177", len = 0}, sip_params = {
            s = 0x55e055c6fb50 "\220\247\306U\340U", len = 1353707994}, headers = {s = 0x7f1f4b5653e0 "", len = 1343325424}, port_no = 1, proto = 0,
          type = ERROR_URI_T, flags = (unknown: 0x501184f0), transport = {s = 0x7f1f4b5653e0 "", len = 0}, ttl = {
            s = 0xffffffff <error: Cannot access memory at address 0xffffffff>, len = 0}, user_param = {s = 0x0, len = 0}, maddr = {s = 0x0, len = 8064}, method = {
            s = 0x0, len = 0}, lr = {s = 0x0, len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x0, len = 0}, transport_val = {s = 0x0, len = 0}, ttl_val = {s = 0x0,
            len = 0}, user_param_val = {s = 0x0, len = 0}, maddr_val = {s = 0x0, len = 0}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x0, len = 0}, r2_val = {
            s = 0x0, len = 0}, gr_val = {s = 0x0, len = 0}}
        next_hop = {user = {s = 0x7f1f4b564db8 "\377\377\377\377", len = 44108294}, passwd = {s = 0x7f1f50aebbf8 "\340\002\262P\037\177", len = 4}, host = {s = 0x0,
            len = 0}, port = {s = 0x0, len = 0}, params = {s = 0x0, len = 0}, sip_params = {s = 0x0, len = 0}, headers = {s = 0x0, len = 1410794990}, port_no = 1640,
          proto = 20658, type = 32543, flags = (unknown: 0x50aebc50), transport = {s = 0x7f1f50b202e0 "", len = -1472036457}, ttl = {
            s = 0x7f1f4b564e40 "\230\243\202P\037\177", len = 1353673528}, user_param = {s = 0x2 <error: Cannot access memory at address 0x2>, len = 1353628752},
          maddr = {s = 0x5 <error: Cannot access memory at address 0x5>, len = 0}, method = {s = 0x1 <error: Cannot access memory at address 0x1>, len = 1353843424},
          lr = {s = 0x7f1f4b564db8 "\377\377\377\377", len = 1263947200}, r2 = {s = 0x7f1f50b20668 "\270\005\262P\037\177", len = 0}, gr = {s = 0x0, len = 0},
          transport_val = {s = 0x0, len = 1}, ttl_val = {s = 0x0, len = -1}, user_param_val = {s = 0x7f1f5082a398 "xd", len = 1353627248}, maddr_val = {s = 0x0,
            len = 0}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x0, len = 1353843424}, r2_val = {s = 0x1e <error: Cannot access memory at address 0x1e>,
            len = 1416241392}, gr_val = {s = 0x55e055c6fb50 "\220\247\306U\340U", len = 1439120832}}
        u = 0x0
        port = 0
        dst_host = 0x0
        i = 0
        flags = 32543
        avp = 0x0
        st = {flags = 1263946996, id = 32543, name = {n = 0, s = {s = 0x0, len = 0}, re = 0x0}, avp = 0x55e0541705ee}
        sct = 0x0
        sjt = 0x0
        rve = 0x7f1f50124e00
--Type <RET> for more, q to quit, c to continue without paging--
        mct = 0x0
        rv = 0x7f1f4b564cf8
        rv1 = 0x0
        c1 = {cache_type = 1350721268, val_type = 32543, c = {avp_val = {n = 1350732360, s = {s = 0x7f1f50828a48 "", len = 1263946996}, re = 0x7f1f50828a48}, pval = {
              rs = {s = 0x7f1f50828a48 "", len = 1263946996}, ri = 1353671098, flags = 32543}},
          i2s = "\016\001\000\000\000\000\000\000\220\247\203P\037\177\000\000p\266\256P\037\177"}
        s = {s = 0x7f1f50aeb670 "", len = -1472036457}
        srevp = {0x0, 0x7f1f50af5d94 <check_match+308>}
        evp = {data = 0x0, obuf = {s = 0x0, len = 0}, rcv = 0x0, dst = 0x0, req = 0x0, rpl = 0x0, rplcode = 0, mode = 0}
        mod_f_params = {{type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {
              number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {
                s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0,
              attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {
            type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0,
              string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0,
                len = 0}, data = 0x0, attr = 0x0, select = 0x0}}}
        __func__ = "do_action"
#5  0x000055e0541bf19c in run_actions (h=0x7f1f4b5653d0, a=0x7f1f501184f0, msg=0x7f1f4b565520) at core/action.c:1584
        t = 0x7f1f50125bd8
        ret = 1
        tvb = {tv_sec = 0, tv_usec = 0}
        tve = {tv_sec = 0, tv_usec = 0}
        tz = {tz_minuteswest = 0, tz_dsttime = 0}
        tdiff = 0
        __func__ = "run_actions"
#6  0x000055e0541bf952 in run_top_route (a=0x7f1f501184f0, msg=0x7f1f4b565520, c=0x0) at core/action.c:1669
        ctx = {rec_lev = 1, run_flags = 0, last_retcode = 1, jmp_env = {{__jmpbuf = {0, 4939234594580743030, 0, 94422000139088, 94422000156096, 139772261604432,
                4939234594631074678, 1258071283405570934}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 13 times>, 139772384662704, 94421972644698, 0}}}}}
        p = 0x7f1f4b5653d0
        ret = 1263948992
        sfbk = 0
#7  0x00007f1f4f9b71e2 in nats_run_cfg_route (rt=3, evname=0x7f1f4b80dfe8) at nats_mod.c:701
        ctx = {rec_lev = 0, run_flags = 0, last_retcode = 0, jmp_env = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {
                  139772471958850, 0, 0, 94422000160328, 0, 0, 94422000160288, 0, 139772471968496, 0, 0, 0, 0, 0, 139772384665040, 139772471968128}}}}}
        keng = 0x0
        fmsg = 0x7f1f4b565520
        tmsg = {id = 1, pid = 1220, tval = {tv_sec = 0, tv_usec = 0}, fwd_send_flags = {f = 0, blst_imask = 0}, rpl_send_flags = {f = 0, blst_imask = 0},
          first_line = {type = 1, flags = 1, len = 38, u = {request = {method = {
                  s = 0x55e0546b3880 <_faked_sip_buf> "OPTIONS sip:you@kamailio.org SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 7}, uri = {
                  s = 0x55e0546b3888 <_faked_sip_buf+8> "sip:you@kamailio.org SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:--Type <RET> for more, q to quit, c to continue without paging--
you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 20}, version = {
                  s = 0x55e0546b389d <_faked_sip_buf+29> "SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 7}, method_value = 512}, reply = {version = {
                  s = 0x55e0546b3880 <_faked_sip_buf> "OPTIONS sip:you@kamailio.org SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 7}, status = {
                  s = 0x55e0546b3888 <_faked_sip_buf+8> "sip:you@kamailio.org SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 20}, reason = {
                  s = 0x55e0546b389d <_faked_sip_buf+29> "SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 7}, statuscode = 512}}}, via1 = 0x7f1f50142238, via2 = 0x0, headers = 0x7f1f50142190,
          last_header = 0x7f1f50142190, parsed_flag = 2, h_via1 = 0x7f1f50142190, h_via2 = 0x0, callid = 0x0, to = 0x0, cseq = 0x0, from = 0x0, contact = 0x0,
          maxforwards = 0x0, route = 0x0, record_route = 0x0, content_type = 0x0, content_length = 0x0, authorization = 0x0, expires = 0x0, proxy_auth = 0x0,
          supported = 0x0, require = 0x0, proxy_require = 0x0, unsupported = 0x0, allow = 0x0, event = 0x0, accept = 0x0, accept_language = 0x0, organization = 0x0,
          priority = 0x0, subject = 0x0, user_agent = 0x0, server = 0x0, content_disposition = 0x0, diversion = 0x0, rpid = 0x0, refer_to = 0x0,
          session_expires = 0x0, min_se = 0x0, sipifmatch = 0x0, subscription_state = 0x0, date = 0x0, identity = 0x0, identity_info = 0x0, pai = 0x0, ppi = 0x0,
          path = 0x0, privacy = 0x0, min_expires = 0x0, body = 0x0, eoh = 0x0,
          unparsed = 0x55e0546b38c2 <_faked_sip_buf+66> "From: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", rcv = {src_ip = {af = 2, len = 4, u = {addrl = {2130706433, 0}, addr32 = {2130706433, 0, 0, 0}, addr16 = {1, 32512, 0, 0, 0, 0, 0, 0},
                addr = "\001\000\000\177", '\000' <repeats 11 times>}}, dst_ip = {af = 2, len = 4, u = {addrl = {2130706433, 0}, addr32 = {2130706433, 0, 0, 0},
                addr16 = {1, 32512, 0, 0, 0, 0, 0, 0}, addr = "\001\000\000\177", '\000' <repeats 11 times>}}, src_port = 5060, dst_port = 5060, proto_reserved1 = 0,
            proto_reserved2 = 0, src_su = {s = {sa_family = 0, sa_data = '\000' <repeats 13 times>}, sin = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0},
                sin_zero = "\000\000\000\000\000\000\000"}, sin6 = {sin6_family = 0, sin6_port = 0, sin6_flowinfo = 0, sin6_addr = {__in6_u = {
                    __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, sin6_scope_id = 0}, sas = {
                ss_family = 0, __ss_padding = '\000' <repeats 117 times>, __ss_align = 0}}, bind_address = 0x0, rflags = 0, proto = 1 '\001', proto_pad0 = 0 '\000',
            proto_pad1 = 0},
          buf = 0x55e0546b3880 <_faked_sip_buf> "OPTIONS sip:you@kamailio.org SIP/2.0\r\nVia: SIP/2.0/UDP 127.0.0.1\r\nFrom: <sip:you@kamailio.org>;tag=123\r\nTo: <sip:you@kamailio.org>\r\nCall-ID: 123\r\nCSeq: 1 OPTIONS\r\nContent-Length: 0\r\n\r\n", len = 184, new_uri = {s = 0x0, len = 0}, dst_uri = {s = 0x0, len = 0},
          parsed_uri_ok = 0, parsed_uri = {user = {s = 0x0, len = 0}, passwd = {s = 0x0, len = 0}, host = {s = 0x0, len = 0}, port = {s = 0x0, len = 0}, params = {
              s = 0x0, len = 0}, sip_params = {s = 0x0, len = 0}, headers = {s = 0x0, len = 0}, port_no = 0, proto = 0, type = ERROR_URI_T, flags = 0, transport = {
              s = 0x0, len = 0}, ttl = {s = 0x0, len = 0}, user_param = {s = 0x0, len = 0}, maddr = {s = 0x0, len = 0}, method = {s = 0x0, len = 0}, lr = {s = 0x0,
              len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x0, len = 0}, transport_val = {s = 0x0, len = 0}, ttl_val = {s = 0x0, len = 0}, user_param_val = {s = 0x0,
              len = 0}, maddr_val = {s = 0x0, len = 0}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x0, len = 0}, r2_val = {s = 0x0, len = 0}, gr_val = {s = 0x0,
              len = 0}}, parsed_orig_ruri_ok = 0, parsed_orig_ruri = {user = {s = 0x0, len = 0}, passwd = {s = 0x0, len = 0}, host = {s = 0x0, len = 0}, port = {
              s = 0x0, len = 0}, params = {s = 0x0, len = 0}, sip_params = {s = 0x0, len = 0}, headers = {s = 0x0, len = 0}, port_no = 0, proto = 0,
            type = ERROR_URI_T, flags = 0, transport = {s = 0x0, len = 0}, ttl = {s = 0x0, len = 0}, user_param = {s = 0x0, len = 0}, maddr = {s = 0x0, len = 0},
            method = {s = 0x0, len = 0}, lr = {s = 0x0, len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x0, len = 0}, transport_val = {s = 0x0, len = 0}, ttl_val = {
              s = 0x0, len = 0}, user_param_val = {s = 0x0, len = 0}, maddr_val = {s = 0x0, len = 0}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x0, len = 0},
            r2_val = {s = 0x0, len = 0}, gr_val = {s = 0x0, len = 0}}, add_rm = 0x0, body_lumps = 0x0, reply_lump = 0x0, add_to_branch_s = '\000' <repeats 57 times>,
          add_to_branch_len = 0, hash_index = 0, msg_flags = 0, flags = 0, xflags = {0, 0}, set_global_address = {s = 0x0, len = 0}, set_global_port = {s = 0x0,
            len = 0}, force_send_socket = 0x0, path_vec = {s = 0x0, len = 0}, instance = {s = 0x0, len = 0}, reg_id = 0, ruid = {s = 0x0, len = 0}, location_ua = {
            s = 0x0, len = 0}, otcpid = 0, ldv = {flow = {decoded = 0, rcv = {src_ip = {af = 0, len = 0, u = {addrl = {0, 0}, addr32 = {0, 0, 0, 0}, addr16 = {0, 0,
                      0, 0, 0, 0, 0, 0}, addr = '\000' <repeats 15 times>}}, dst_ip = {af = 0, len = 0, u = {addrl = {0, 0}, addr32 = {0, 0, 0, 0}, addr16 = {0, 0, 0,
--Type <RET> for more, q to quit, c to continue without paging--
                      0, 0, 0, 0, 0}, addr = '\000' <repeats 15 times>}}, src_port = 0, dst_port = 0, proto_reserved1 = 0, proto_reserved2 = 0, src_su = {s = {
                    sa_family = 0, sa_data = '\000' <repeats 13 times>}, sin = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0},
                    sin_zero = "\000\000\000\000\000\000\000"}, sin6 = {sin6_family = 0, sin6_port = 0, sin6_flowinfo = 0, sin6_addr = {__in6_u = {
                        __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, sin6_scope_id = 0}, sas = {
                    ss_family = 0, __ss_padding = '\000' <repeats 117 times>, __ss_align = 0}}, bind_address = 0x0, rflags = 0, proto = 0 '\000',
                proto_pad0 = 0 '\000', proto_pad1 = 0}}, vdata = 0x0}}
        __func__ = "nats_run_cfg_route"
#8  0x00007f1f4f9ab75c in onMsg (nc=0x55e055c73dc0, sub=0x55e055c6fb50, msg=0x7f1f44009c50, closure=0x7f1f4b80dfd8) at nats_mod.c:86
        on_message = 0x7f1f4b80dfd8
        data = 0x7f1f44009cc2 "{\"jsonrpc\":\"2.0\",\"method\":\"route\",\"tindex\":24430,\"tlabel\":441244223,\"destination\":\"sip:192.168.31.96:5080\"}"
#9  0x00007f1f4f978a4d in natsSub_deliverMsgs () from /usr/local/lib/libnats.so.3.6
No symbol table info available.
#10 0x00007f1f4f981710 in _threadStart () from /usr/local/lib/libnats.so.3.6
No symbol table info available.
#11 0x00007f1f508a8fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139772384667328, -4993021813156068490, -128, 115, 140722876985616, 139772376276992, 4939234594488468342,
                4939208578292269942}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#12 0x00007f1f5092966c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.
(gdb)

@henningw henningw changed the title CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 41 kamailio crash, probably related to nats module in 5.6.4 Mar 20, 2023
@henningw henningw changed the title kamailio crash, probably related to nats module in 5.6.4 kamailio 5.6.4 crash, probably related to nats module Mar 20, 2023
@sznoname
Copy link
Contributor Author

It works well.

miconda added a commit that referenced this issue Mar 22, 2023
@miconda
Copy link
Member

miconda commented Mar 22, 2023

Can you try with master branch or the commit referenced above as an alternative fix inside the nats module?

@sznoname
Copy link
Contributor Author

master work well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants