Hi All,
I have a recurrent memory problem with openser 1.2.0. In this case it only acts as a SIP router. No registration, accounting etc. and only approx. 20 simultaneous calls.
Here is the problem: everything works fine (calls from/to PSTN through different SIP servers), but after a few days, "out of memory" errors start to occur. After this, calls don't work anymore, even if openser continues to run.
Here is a part of the log, showing the first errors:
Jun 5 17:25:43 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:25:43 localhost SER[27772]: ERROR:tm:relay_reply: no mem for outbound reply buffer Jun 5 17:25:43 localhost SER[27772]: ERROR: via_builder: out of memory Jun 5 17:25:43 localhost SER[27772]: ERROR: build_local: no via header got from builder Jun 5 17:25:43 localhost SER[27772]: ERROR: attempt to build a CANCEL failed Jun 5 17:25:50 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:25:50 localhost SER[27772]: ERROR:tm:relay_reply: no mem for outbound reply buffer Jun 5 17:25:50 localhost SER[27772]: ERROR: build_res_buf_from_sip_req: out of memory ; needs 410 Jun 5 17:26:11 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:26:11 localhost SER[27772]: ERROR:tm:relay_reply: no mem for outbound reply buffer Jun 5 17:26:11 localhost SER[27772]: ERROR: build_res_buf_from_sip_req: out of memory ; needs 404 Jun 5 17:26:25 localhost SER[27772]: eval_elem: no more memory Jun 5 17:26:25 localhost SER[27772]: do_assign: no value in right expression Jun 5 17:26:25 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:26:25 localhost SER[27772]: ERROR:tm:relay_reply: no mem for outbound reply buffer Jun 5 17:26:25 localhost SER[27772]: ERROR: build_res_buf_from_sip_req: out of memory ; needs 420 Jun 5 17:26:25 localhost SER[27771]: ERROR:forward_reply: no 2nd via found in reply Jun 5 17:26:31 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:26:31 localhost SER[27772]: ERROR:forward_reply: building rpl from req failed Jun 5 17:26:33 localhost SER[27772]: ERROR: build_res_buf_from_sip_res: out of mem Jun 5 17:26:33 localhost SER[27772]: ERROR:forward_reply: building rpl from req failed Jun 5 17:26:38 localhost SER[27772]: ERROR: insert_new_lump_after: out of memory Jun 5 17:26:38 localhost SER[27772]: ERROR: insert_new_lump_before: out of memory Jun 5 17:26:38 localhost SER[27772]: insert_RR(): Error while inserting conditional lump Jun 5 17:26:38 localhost SER[27772]: ERROR: subst_str: mem. allocation error (res->s) Jun 5 17:26:38 localhost SER[27772]: ERROR: do_action: memory allocation failure Jun 5 17:26:38 localhost SER[27772]: ERROR: build_res_buf_from_sip_req: out of memory ; needs 375 Jun 5 17:26:38 localhost SER[27772]: ERROR: mk_proxy: memory allocation failure Jun 5 17:26:38 localhost SER[27772]: ERROR:tm:t_forward_nonack: failure to add branches
At this point, similar errors continue to appear and the only way to recover is to restart openser. Nothing unusual seems to cause the initial error. The output of "top" appears to be fine after the "crash", and there is still plenty free memory on the server.
Could anybody give me some hints on how to solve the problem? I suspect a portion of the config file where the record-route headers are split on multiple lines (for compatibility issues with another SIP proxy). It's the only place where variables are used. You can find it here:
http://switzernet.com/people/christian-lathion/files/070605-openser-config-p...
Otherwise the config file is quite usual, with basic processing and routing of SIP packets.
Regards, Christian