Re: Kannel not load balancing after restart and messages get stuck inqueue

"Nikos Balkanas" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <006e01c9e928$07d45790$02b2a8c0@tardis>
Dear Alvaro,

I just managed to finish with my responsibilities, not on April 10, as I was 
hoping. Meanwhile, I haven't heard from you in a while, and I hope you are 
enjoying your vacations.

Here is a patch to gw/bearerbox.c and gw/bb_smscconn.c, that doesn't start 
the sms_router, until all smscs (except the FAKE) are ACTIVE. If I am not 
mistaken, bearerbox will not start unless all smscs are available. So this 
is inline with this philosophy.

I have tested it to the extend that it doesn't break anything, please let me 
know if it solves your problem.

BR,
Nikos
----- Original Message ----- 
From: "Alvaro Cornejo" <[email protected]>
To: "Nikos Balkanas" <[email protected]>
Sent: Tuesday, March 31, 2009 4:56 PM
Subject: Re: Kannel not load balancing after restart and messages get stuck 
inqueue


Hi Nikos

No problem. I undestand we are on a "best effort support XD" and this
is not a critical issue.

Thanks

Alvaro


|-----------------------------------------------------------------------------------------------------------------|
Envíe y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier
celular y Nextel
en el Perú, México y en mas de 180 paises. Use aplicaciones 2 vias via
SMS y GPRS online
              Visitenos en www.perusms.NET www.smsglobal.com.mx y
www.pravcom.com



2009/3/31 Nikos Balkanas <[email protected]>:
> Hi Alvaro,
>
> Thanx for reminding me. Unfortunately I am still working very hard on my
> project. I will be finished by the 10th of April. Sorry about that and I
> hope I am not causing you trouble. I put a reminder on my PC not to 
> forget.
>
> BR,
> Nikos
>
> ----- Original Message ----- From: "Alvaro Cornejo"
> <[email protected]>
> To: "Nikos Balkanas" <[email protected]>; "kannel users"
> <[email protected]>
> Sent: Tuesday, March 31, 2009 10:17 AM
> Subject: Re: Kannel not load balancing after restart and messages get 
> stuck
> inqueue
>
>
> Hi Nikos
>
> Had you chance to review this?
>
> Regards
>
> Alvaro
> |-----------------------------------------------------------------------------------------------------------------|
> EnvΓ“­e y Reciba Datos y mensajes de Texto (SMS) hacia y desde cualquier
> celular y Nextel
> en el PerΓΒ“ΓΒ, MΓ“©xico y en mas de 180 paises. Use aplicaciones 2 vias 
> via
> SMS y GPRS online
> Γ‚ Γ‚ Γ‚ Γ‚ Γ‚ Γ‚ Visitenos en www.perusms.NET www.smsglobal.com.mx y
> www.pravcom.com
>
>
>
> 2009/3/10 Nikos Balkanas <[email protected]>:
>>
>> Hi,
>>
>> I am working on something very important right now. Could you give me a
>> ping
>> in 2 weeks or so, if no one has addressed it?
>>
>> Thanx,
>> Nikos
>> ----- Original Message ----- From: "Alvaro Cornejo"
>> <[email protected]>
>> To: "Nikos Balkanas" <[email protected]>
>> Cc: "seikath" <[email protected]>; "kannel users" <[email protected]>
>> Sent: Wednesday, March 11, 2009 5:29 AM
>> Subject: Re: Kannel not load balancing after restart and messages get
>> stuck
>> inqueue
>>
>>
>> Hi Nikos
>>
>> for 1... still looking at data/logs... nothing so far.
>>
>> for 2... You are right:
>>
>> SMSC connections:
>> id1 ΓΒ’ ΓΒ’ AT2[id1] (online 323s, rcvd 48, sent 48, failed 0, queued 265
>> msgs)
>> id2 ΓΒ’ ΓΒ’ AT2[id2] (online 314s, rcvd 0, sent 0, failed 0, queued 0 msgs)
>> id3 ΓΒ’ ΓΒ’ AT2[id3] (online 314s, rcvd 0, sent 0, failed 0, queued 0 msgs)
>> id4 ΓΒ’ ΓΒ’ AT2[id4] (online 314s, rcvd 0, sent 0, failed 0, queued 0 msgs)
>> id5 ΓΒ’ ΓΒ’ AT2[id5] (online 314s, rcvd 0, sent 0, failed 0, queued 0 msgs)
>>
>> All messages in queue for smsc-id "id_op1" were asigned to the 1st
>> available smsc that has allowed-smsc=id_op1
>>
>> I'm not developer but think this behavior shall be modified so kannel
>> will be able to maximize/optimize its resources available. Some sort
>> of "recalculation of ΓΒ’ the better route" for messages each x time
>>
>> Regards
>>
>> Alvaro
>>
>>
>>
>> |-----------------------------------------------------------------------------------------------------------------|
>> EnvΓΒΓΆΒ€ΒΓ’­e y Reciba Datos y mensajes de Texto (SMS) hacia y desde 
>> cualquier
>> celular y Nextel
>> en el PerΓΒΓΆΒ€ΒΓΒ , MΓΒΓΆΒ€ΒΓ’©xico y en mas de 180 paises. Use 
>> aplicaciones 2 vias
>> via
>> SMS y GPRS online
>> ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ Visitenos en www.perusms.NET www.smsglobal.com.mx y
>> www.pravcom.com
>>
>>
>>
>> On Tue, Mar 10, 2009 at 8:57 PM, Nikos Balkanas <[email protected]>
>> wrote:
>>>
>>> Hi,
>>>
>>> These are some heavy questions dude.
>>>
>>> (1) SMS shoudn't get stuck like that so that they require restart.
>>> Anything
>>> in the logs?
>>>
>>> (2) I could speculate why this happens, but without looking at the 
>>> source
>>> code it would be guesswork. My guess would be that it involves the 
>>> timing
>>> needed at startup to designate SMScs as active. Probably this is done by
>>> way
>>> of configuration order (i.e. id1, id2, etc.). The first active one gets
>>> the
>>> queue. Bearerbox router checks in every 30".
>>>
>>> BR,
>>> Nikos
>>>
>>> ----- Original Message ----- From: "Alvaro Cornejo"
>>> <[email protected]>
>>> To: "seikath" <[email protected]>
>>> Cc: "kannel users" <[email protected]>
>>> Sent: Wednesday, March 11, 2009 3:41 AM
>>> Subject: Re: Kannel not load balancing after restart and messages get
>>> stuck
>>> inqueue
>>>
>>>
>>> No, I'm using mysql for dlr storage since otherwise dlr are lost on
>>> kannel restart
>>>
>>>
>>>
>>> |-----------------------------------------------------------------------------------------------------------------|
>>> EnvΓΒ Γ’½e y Reciba Datos y mensajes de Texto (SMS) hacia y desde 
>>> cualquier
>>> celular y Nextel
>>> en el PerΓΒ Γ‚ , MΓΒ ΓΒ‰xico y en mas de 180 paises. Use aplicaciones 2 
>>> vias
>>> via
>>> SMS y GPRS online
>>> ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ ΓΒ’ Visitenos en www.perusms.NET 
>>> www.smsglobal.com.mx y
>>> www.pravcom.com
>>>
>>>
>>>
>>> On Tue, Mar 10, 2009 at 8:15 PM, seikath <[email protected]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am not aware of the store_tools.
>>>> Anyway, I assume you use default kannel store file
>>>> instead of db dlr storage, correct ?
>>>>
>>>>
>>>>
>>>> Alvaro Cornejo wrote:
>>>>>
>>>>> Hi List
>>>>>
>>>>>
>>>>> I've found the following 2 isues:
>>>>>
>>>>> 1) I have several modems for the same operators 10 for op1 and 5 for
>>>>> op2. For some reason, some messages get stuck into kannel queue and
>>>>> are not sent to smsc without restarting kannel. I've used Alex
>>>>> store_tools and verify messages are in queue. All messages are sent
>>>>> using the same code and use AT-SMSCs.
>>>>>
>>>>> 2) When I restart kannel QUEUED messages are sent through only one
>>>>> at-smsc even if messages have a destination smsc-id specified in
>>>>> sendsms url call
>>>>>
>>>>> This is an snippet of the config I have:
>>>>>
>>>>> smsc-id = id1
>>>>> allowed-smsc = id1,id_op1
>>>>>
>>>>> smsc-id = id2
>>>>> allowed-smsc = id2,id_op1
>>>>>
>>>>> smsc-id = id3
>>>>> allowed-smsc = id3,id_op1
>>>>>
>>>>> smsc-id = id4
>>>>> allowed-smsc = id4,id_op2
>>>>>
>>>>> smsc-id = id5
>>>>> allowed-smsc = id5,id_op2
>>>>>
>>>>> etc...
>>>>>
>>>>> Note there is no smsc defined with smsc-id=id_op1 nor id_op2 in config
>>>>> file.
>>>>>
>>>>> When sending the messages I use &smsc-id=id_op1 or id_op2 into url so
>>>>> kannel load-balance through the smsc of corresponding operator and
>>>>> send the message. This works fine until I restart kannel.
>>>>>
>>>>> After kannel reset, All QUEUED messages are sent through ONLY ONE of
>>>>> the smsc without load-balancing between smsc even though there are
>>>>> hundreds of queued messages; however if, at the same time, I send
>>>>> messages to any of the id_op1 or id_op2, this new messages are
>>>>> correctly load-balanced between smsc-at
>>>>>
>>>>> I use:
>>>>>
>>>>> Kannel bearerbox version `1.4.3'. Build `Feb 13 2009 17:32:59',
>>>>> compiler `4.1.2 20070626 (Red Hat 4.1.2-13)'. System Linux, release
>>>>> 2.6.20-1.2962.fc6, version #1 SMP Tue Jun 19 19:27:14 EDT 2007,
>>>>> machine i686. IP 10.10.5.2. Libxml version 2.6.29. Using OpenSSL
>>>>> 0.9.8b 04 May 2006. Compiled with MySQL 5.0.27, using MySQL 5.0.27.
>>>>> Using native malloc.
>>>>>
>>>>>
>>>>> Any ideas?
>>>>>
>>>>>
>>>>> Regards
>>>>>
>>>>> Alvaro
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> |-----------------------------------------------------------------------------------------------------------------|
>>>>> EnvΓΒ Γ’½e y Reciba Datos y mensajes de Texto (SMS) hacia y desde
>>>>> cualquier
>>>>> celular y Nextel
>>>>> en el PerΓΒ Γ‚ , MΓΒ ΓΒ‰xico y en mas de 180 paises. Use aplicaciones 
>>>>> 2 vias
>>>>> via
>>>>> SMS y GPRS online
>>>>> Visitenos en www.perusms.NET www.smsglobal.com.mx y
>>>>> www.pravcom.com
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
kannel.diff (application/octet-stream, 2 KB)
Index: gw/bb_smscconn.c
===================================================================
RCS file: /home/cvs/gateway/gw/bb_smscconn.c,v
retrieving revision 1.101
diff -a -u -r1.101 bb_smscconn.c
--- gw/bb_smscconn.c	6 May 2009 18:47:34 -0000	1.101
+++ gw/bb_smscconn.c	9 Jun 2009 17:20:13 -0000
@@ -131,7 +131,7 @@
 static regex_t *white_list_regex;
 static regex_t *black_list_regex;
 
-static long router_thread = -1;
+extern long router_thread;
 
 /* message resend */
 static long sms_resend_frequency;
@@ -586,6 +586,22 @@
  *
  */
 
+void start_router()
+{
+    int i, len = gwlist_len(smsc_list);
+    SMSCConn *conn;
+
+    for (i = 0; i < len; i++)
+    {
+        conn = gwlist_get(smsc_list, i);
+        if (!(conn->status == SMSCCONN_ACTIVE &&
+              octstr_str_compare(conn->name, "FAKE") == 0))
+              return;
+    }
+    if ((router_thread = gwthread_create(sms_router, NULL)) == -1)
+        panic(0, "Failed to start a new thread for SMS routing");
+}
+
 int smsc2_start(Cfg *cfg)
 {
     CfgGroup *grp;
Index: gw/bearerbox.c
===================================================================
RCS file: /home/cvs/gateway/gw/bearerbox.c,v
retrieving revision 1.169
diff -a -u -r1.169 bearerbox.c
--- gw/bearerbox.c	12 Jan 2009 16:46:56 -0000	1.169
+++ gw/bearerbox.c	9 Jun 2009 17:20:14 -0000
@@ -140,6 +140,8 @@
 static time_t start_time;
 volatile sig_atomic_t restart = 0;
 
+/* Outgoing sms router */
+long router_thread = -1;
 
 /* to avoid copied code */
 
@@ -639,7 +641,6 @@
         info(0, "Gateway is now ISOLATED by startup arguments");
         gwlist_remove_producer(suspended);
     } else {
-        smsc2_resume();
         gwlist_remove_producer(suspended);	
         gwlist_remove_producer(isolated);
     }
@@ -657,6 +658,9 @@
         gwthread_sleep(10.0);
         /* debug("bb", 0, "Main Thread: woken up."); */
 
+        if (router_thread < 0 && bb_status != BB_ISOLATED)
+           start_router();
+
         if (bb_todo == 0) {
             continue;
         }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.