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-…
Otherwise the config file is quite usual, with basic processing and
routing of SIP packets.
Regards,
Christian