[Devel] handle_publish: Bad body format

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue May 15 19:01:50 CEST 2007


Hi Klaus,

thanks for the access to the test machine. I managed to find and fix the 
bug (according to our tests)- it is already applied on SVN trunk. Before 
backporting it to 1.2, I would like to know if it possible for you to 
test it also...let me know if you need the patch or something else...

Thanks and regards,
Bogdan

Bogdan-Andrei Iancu wrote:
> Hi Klaus,
>
> yes, doing debug via debug logs is not all the time the best options. 
> In this case, probably the best way will be to attach with GDB to a 
> running process (after the leak occurred) and inspect the shm memory - 
> but is difficult to do this over email :(
>
> as I guess is not possible to get access to tour test system, could 
> send me a description of how to reproduce your test scenario (sipp 
> scripts & commands, relevant part of scripts). I will ask Anca to 
> reproduce it on our systems....
>
> I really want to solve this till the 1.2.1 release, otherwise I see no 
> option than to delay the release until we figure out the problem.
>
> Regards,
> Bogdan
>
> Klaus Darilion wrote:
>> Hi Bogdan!
>>
>> When running in debug=4 mode, the problem is gone. Maybe the problem 
>> happens only during high traffic, but in debug mode openser is really 
>> slow.
>>
>> regards
>> klaus
>>
>> Bogdan-Andrei Iancu wrote:
>>> Klaus,
>>>
>>> can you get a post the entire log (including all the mem logs from 
>>> runtime) in debug mode? It is important to see in what context the 
>>> transactions were allocated.
>>>
>>> thanks,
>>> bogdan
>>>
>>> Klaus Darilion wrote:
>>>> Maybe this is memory related too?
>>>>
>>>> I've made a memdump (after 20 minutes idle) of this strange situation.
>>>>
>>>> is02:/home/klaus3000# openserctl fifo ps
>>>> 200 OK
>>>> Process::  ID=0 PID=6700 Type=attendant
>>>> Process::  ID=1 PID=6705 Type=receiver child=0 sock= 1.2.3.4:6060
>>>> Process::  ID=2 PID=6708 Type=timer
>>>> Process::  ID=3 PID=6710 Type=tcp receiver
>>>> Process::  ID=4 PID=6712 Type=tcp main process
>>>>
>>>>
>>>> http://pernau.at/kd/openser/otherPCmemleak-sigusr1.openser-SVN.log
>>>>
>>>> regards
>>>> klaus
>>>>
>>>> Klaus Darilion wrote:
>>>>> Hi!
>>>>>
>>>>> I've tried with todays SVN 1.2. In the beginning was everything 
>>>>> fine - but suddenly after ~150000 messages presence module reports:
>>>>>
>>>>> May 11 15:14:00 is02 /usr/sbin/openser[6705]: PRESENCE: 
>>>>> generate_ETag: etag= a.1178878809.6705.311731 / 24
>>>>> May 11 15:14:00 is02 /usr/sbin/openser[6705]: PRESENCE: 
>>>>> handle_publish: Bad body format
>>>>> May 11 15:14:00 is02 /usr/sbin/openser[6705]: PRESENCE: 
>>>>> handle_publish: ERROR occured
>>>>>
>>>>> Following is the PUBLISH - which is generated by SIPP. Any hints?
>>>>>
>>>>> U 11.22.33.123:5061 -> 11.22.33.123:6060
>>>>> PUBLISH sip:klaus at pernau.at SIP/2.0.
>>>>> Via: SIP/2.0/UDP 11.22.33.123:5061;branch=z9hG4bK-7275-39-0.
>>>>> Max-Forwards: 70.
>>>>> Contact: sip:ua1 at 11.22.33.123:5061.
>>>>> To: "klaus"<sip:klaus at pernau.at>.
>>>>> From: "klaus"<sip:klaus at pernau.at>;tag=39.
>>>>> Call-ID: 39-7275 at 11.22.33.123.
>>>>> CSeq: 1 PUBLISH.
>>>>> Expires: 60.
>>>>> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, 
>>>>> SUBSCRIBE, INFO.
>>>>> Content-Type: application/pidf+xml.
>>>>> User-Agent: sipp.
>>>>> Event: presence.
>>>>> Content-Length:  420.
>>>>> .
>>>>> <?xml version='1.0' encoding='UTF-8'?><presence 
>>>>> xmlns='urn:ietf:params:xml:ns:pidf' 
>>>>> xmlns:dm='urn:ietf:params:xml:ns:pidf:data-model' 
>>>>> xmlns:rpid='urn:ietf:params:xml:ns:pidf:rpid' 
>>>>> xmlns:c='urn:ietf:params:xml:ns:pidf:cipid' 
>>>>> entity='sip:klaus at pernau.at'><tuple 
>>>>> id='t532d494f'><status><basic>open</basic></status></tuple><dm:person 
>>>>> id='p98169736'><rpid:activities><rpid:unknown/></rpid:activities></dm:person></presence>. 
>>>>>
>>>>>
>>>>> #
>>>>> U 11.22.33.123:6060 -> 11.22.33.123:5061
>>>>> SIP/2.0 415 Unsupported media type.
>>>>> Via: SIP/2.0/UDP 11.22.33.123:5061;branch=z9hG4bK-7275-39-0.
>>>>> To: 
>>>>> "klaus"<sip:klaus at pernau.at>;tag=0847ae4039e784441c60c0ce3b39ea30.8a59. 
>>>>>
>>>>> From: "klaus"<sip:klaus at pernau.at>;tag=39.
>>>>> Call-ID: 39-7275 at 11.22.33.123.
>>>>> CSeq: 1 PUBLISH.
>>>>> Server: OpenSER (1.2.0-tls (i386/linux)).
>>>>> Content-Length: 0.
>>>>> .
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Bogdan-Andrei Iancu wrote:
>>>>>> Klaus,
>>>>>>
>>>>>> I'm not 100% sure if the mem leak can be just avoided only with 
>>>>>> t_release(). Theoretically, it should ; but practically, there is 
>>>>>> a difference between practice and theory :D....
>>>>>> Just be sure, try to get the SVN version of 1.2 and run the tests 
>>>>>> on it. This way we can be 100% sure !
>>>>>>
>>>>>> regards,
>>>>>> bogdan
>>>>>>
>>>>>> Klaus Darilion wrote:
>>>>>>>
>>>>>>>
>>>>>>> Bogdan-Andrei Iancu wrote:
>>>>>>>> Hi Klaus,
>>>>>>>>
>>>>>>>> the fix was also backported to 1.2.
>>>>>>>
>>>>>>> Uups. I'missed that. But i still use my old binaries with 
>>>>>>> t_release(). This should be fine too - isn't it?
>>>>>>>
>>>>>>> regards
>>>>>>> klaus
>>>>>>>
>>>>>>>>
>>>>>>>> regards,
>>>>>>>> bogdan
>>>>>>>>
>>>>>>>> Klaus Darilion wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Juha Heinanen wrote:
>>>>>>>>>> Klaus Darilion writes:
>>>>>>>>>>
>>>>>>>>>>  > I still use openser 1.2, thus I have to use t_release()
>>>>>>>>>>
>>>>>>>>>> i have missed this: how do 1.2 and trunk differ regarding 
>>>>>>>>>> t_release?
>>>>>>>>>
>>>>>>>>> With openser 1.2, if you use t_newtran() before 
>>>>>>>>> handle_publish() you have to explicitely free the transaction 
>>>>>>>>> with t_release().
>>>>>>>>>
>>>>>>>>> In trunk it is fixed and the transaction gets freed also if 
>>>>>>>>> you omit t_release().
>>>>>>>>>
>>>>>>>>> regards
>>>>>>>>> klaus
>
>
> _______________________________________________
> Devel mailing list
> Devel at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/devel
>




More information about the Devel mailing list