Hi,

sorry for delay. Patch commited to cvs...

Vincent CHAVANIS wrote:

> As no objections here,
> 
> Please commit to CVS.
> 
> Vincent.
> 
> --
> Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
> Service Technique/Reseau - NOC
> Developpement SMS/MMS/Kiosques
> http://www.telemaque.fr/
> [EMAIL PROTECTED]
> Tel : +33 4 92 90 99 84 (fax 9142)
> ----- Original Message -----
> From: "Vincent CHAVANIS" <[EMAIL PROTECTED]>
> To: <devel@kannel.org>
> Sent: Monday, October 15, 2007 1:42 PM
> Subject: Re: Possible race condition when clear_old_concat_parts is called
> 
> 
>>
>> Here is the patch to fix this issue (thanks Paul)
>>
>> diff -rauw /gateway-cvs/gw/bb_smscconn.c /gateway/gw/bb_smscconn.c
>> --- /gateway-cvs/gw/bb_smscconn.c       2007-06-12 16:08:15.000000000
>> +0200
>> +++ /gateway/gw/bb_smscconn.c   2007-10-15 10:40:57.000000000 +0200
>> @@ -1254,7 +1254,7 @@
>>     Octstr *key;
>>
>>     /* not initialised, go away */
>> -    if (incoming_concat_msgs != NULL)
>> +    if (incoming_concat_msgs == NULL)
>>         return;
>>
>>     debug("bb.sms.splits", 0, "clear_old_concat_parts called");
>>
>>
>> Vincent
>>
>>
>> ----- Original Message -----
>> From: "Vincent CHAVANIS" <[EMAIL PROTECTED]>
>> To: <devel@kannel.org>
>> Cc: "Paul Bagyenda" <[EMAIL PROTECTED]>
>> Sent: Monday, October 15, 2007 1:19 AM
>> Subject: Possible race condition when clear_old_concat_parts is called
>>
>>
>>> Only when sms-combine-concatenated-mo is set to 0,
>>> I experienced a segfault in bearbox (bt full traces bellow)
>>> The line where it crashes is :  keys = dict_keys(incoming_concat_msgs)
>>> (gw/bb_smscconn.c)
>>> I've added a printf after it and it segfaults without showing my debug
>>> message,
>>> so we can be sure dict_keys segfault.
>>> Maybe we can have here a possible race condition.
>>>
>>> @Paul,Alex, have you experiencing that issue before ?
>>>
>>> Vincent.
>>>
>>> refs:
>>> 2007-10-10 15:43:50.191 [22125] [67] DEBUG: HTTP[SMS_7]: Destroying
>>> client information
>>> 2007-10-10 15:43:50.192 [22125] [101] DEBUG: boxc_receiver: got ack
>>> 2007-10-10 15:43:51.001 [22125] [93] DEBUG: clear_old_concat_parts
>>> called Erreur de segmentation (core dumped)
>>>
>>>
>>> Program terminated with signal 11, Segmentation fault.
>>> #0  0x000000000049622f in lock (dict=0x0) at gwlib/dict.c:127
>>> 127         mutex_lock(dict->lock);
>>> (gdb) bt full
>>> #0  0x000000000049622f in lock (dict=0x0) at gwlib/dict.c:127
>>>        __func__ = "lock"
>>> #1  0x0000000000496990 in dict_keys (dict=0x0) at gwlib/dict.c:355
>>>        list = (List *) 0x941a20
>>>        item = (Item *) 0x470ce2a2
>>>        i = 2049294384
>>>        j = 4858217
>>>        __func__ = "dict_keys"
>>> #2  0x0000000000417b25 in clear_old_concat_parts () at
>>> gw/bb_smscconn.c:1263
>>>        keys = (List *) 0x0
>>>        key = (Octstr *) 0x7a25c0f0
>>>        __func__ = "clear_old_concat_parts"
>>> #3  0x0000000000415d17 in sms_router (arg=0x0) at gw/bb_smscconn.c:527
>>>        msg = (Msg *) 0x0
>>>        startmsg = (Msg *) 0x0
>>>        newmsg = (Msg *) 0x0
>>>        ret = 0
>>>        concat_mo_check = 1192029069
>>> #4  0x00000000004988e4 in new_thread (arg=0x98eb40) at
>>> gwlib/gwthread-pthread.c:362
>>>        ret = 0
>>>        p = (struct new_thread_args *) 0x98eb40
>>> #5  0x0000003f312062f7 in start_thread () from /lib64/libpthread.so.0
>>> No symbol table info available.
>>> #6  0x0000003f306d0fbd in clone () from /lib64/libc.so.6
>>> No symbol table info available.
>>>
>>> --
>>> Telemaque - 06560 SOPHIA-ANTIPOLIS - (FR)
>>> Service Technique/Reseau - NOC
>>> Developpement SMS/MMS/Kiosques
>>> http://www.telemaque.fr/
>>> [EMAIL PROTECTED]
>>> Tel : +33 4 92 90 99 84 (fax 9142)
>>
>>
>>
>>

-- 
Thanks,
Alex


Reply via email to