Hi George,
looking over the log, it does seams to be a leak. My guess is that
there is too few PKG memory configured.
You have probably a large script and some intensive
message processing
which may result in mem outage at a point. Also memory fragmentation
may increase the memory usage.
Try to increase the PKG memory and see if you get rid of the problem.
regards,
bogdan
Papadopoulos Georgios wrote:
> Hi Bogdan,
>
> Bad news, I am afraid. I got another "out of memory". I did another
> memory dump on process 10714 this time. Actually there is one dump
> that I did earlier to see if there were any
> segments allocated by subst_str.
> And I did a second dump after the "out of memory" happened. The log file
> is:
>
http://www.real.gr/files/openser.20070622.log.gz
>
> thank you
>
> George
>
>
>> -----Original Message-----
>> From: Bogdan-Andrei Iancu [mailto:bogdan@voice-system.ro] Sent:
>> Friday, June 22, 2007 1:44 PM
>> To: Papadopoulos Georgios
>> Cc: users(a)openser.org
>> Subject: Re: [Users] out of memory - please help
>>
>> Hi George,
>>
>> Papadopoulos Georgios wrote:
>>
>>> Hi Bogdan,
>>>
>>> The server has been running for about 18 hours without any "out of
>>> memory" messages. Usually these appeared after a few hours.
>> I think it
>>> is fixed, but I will keep you posted if it reappears. Thanks a lot!
>>>
>> That is super! I will commit the patch on SVN.
>>
>>> I guess the same fix needs to go in subst_uri() and maybe
>> also add a
>>> check if(result->s!=0) ?
>>>
>> well, in subst_uri() there is no need because the result->s chunk is
>> transferred to msg->new_uri (and freed later from there); in
>> subst_user(), the result->s chunk was copied by the SET_USER_T
>> action, so we need to free it also.
>>
>>> Why did this only appear on the first receiver child? I
>> would expect
>>> that all children receive an equal amount of traffic so they should
>>> all run out of memory more or less at the same time. Except
>> if when a
>>> message is received, Openser finds the first available
>> child and does
>>> this by trying child 1,2,3... Is this the case?
>>>
>> this scheduling is done by kernel and there is no guarantee of a
>> uniform distribution in case of low traffic.
>>
>>> Last (related?) question: There is a thread that the first receiver
>>> child starts, what is its purpose?
>>>
>> you mean a process (there are no threads in openser). it might be a
>> listener of mi_fifo.
>>
>> Regards,
>> Bogdan
>>