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