[Devel] msg->id unique???

Bogdan-Andrei Iancu bogdan at voice-system.ro
Fri Oct 27 16:15:07 CEST 2006


Hi Carsten,

first of all, it was a mistake in my previous email - the id is not 
randomly inited, but with 0. I made a confusion with hash labels in TM....:)

so, we do agree that the the id (as populated in receive.c) cannot 
overlap...the only possibility may be TM related. In failure_route , a 
fake request is build to be passed to the script (as no real request was 
received, being triggered by a reply).
This fake request has " id = original_req_id -1 ".....so, in failure 
route you may have a request with an id already used......

can you check if the errors are failure route related??

regards,
bogdan

Carsten Bock wrote:

> Hi Bogdan,
>
> I did not restart the proxy and even if we did, this would not have 
> lead into an error, because then we would do a database lookup in 
> every case (unless the ID would be 0).
> I know, it should be incremented for every received message and it 
> should not lead into this error, but in our case it did not work 
> properly :-(
> I am investigating on this issue and keep you'll informed if i find 
> something.
>
>
> CU in Berlin,
> Carsten
>
>
> Bogdan-Andrei Iancu schrieb:
>
>> Hi Carsten,
>>
>> have you restarted your proxy between the two requests with same IP?
>> the msg id is initialized in each process with a random value and 
>> incremented for each received message, so it will loop after ~4 
>> billions messages :).
>>
>> regards,
>> bogdan
>>
>> Carsten Bock wrote:
>>
>>> Hi everybody,
>>>
>>> I have just seen a strange phenomenon with "msg->id" field, which, 
>>> according to the source should be unique per thread.
>>>
>>> From parser/msg_parser.h, line 161:
>>> [...]
>>> struct sip_msg {
>>>    unsigned int id;               /* message id, unique/process*/
>>> [...]
>>>
>>>
>>> We use this field for minimzing Database-Lookups so we do some 
>>> lookups just once per request. But now we found some very few 
>>> examples (e. g. maybe 2-3 times per 1000 Requests), were this id was 
>>> the same for different requests per thread and this caused some 
>>> trouble on our proxy. I did see, the call-id of the request was 
>>> different, but the id was the same.
>>> The calls were generated by an Asterisk (SIP) calling another 
>>> Asterisk (E1) via an Cisco Mediagateway.
>>> Has anyone else experienced this?
>>>
>>> Thanks,
>>>
>>> Carsten
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Devel mailing list
>>> Devel at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/devel
>>>
>>
>>
>




More information about the Devel mailing list