Hi Alex, It's not a work around for the problem you mentioned, its a fix for the throughput sleep time. The potential side effect as you say is it might just increase the likelihood of a MO/DLR timeout (but still highly unlikely), which is an unrelated/outside problem relating to the transceiver bind.
Your patch also works, but it works differently. The operator I tested it on seems to still give me throttling errors with your patch, I think they are using a per message calculation of throttling as opposed to an average which your patch caters for. I am still happy with my patch as it is working best for me, but I am not the committer :) Thanks for your help, Donald 2009/2/12 Alexander Malysh <[email protected]> > Hi Donald, > Am 12.02.2009 um 15:28 schrieb Donald Jackson: > > Hi Alex, > > I'm not sure I understand your comment entirely, you say this patch might > cause us to take too long to respond to a DLR/MO, which I understand, BUT > this scenario is already possible if there are no other events calling the > thread to wake up? > > > yes, it's possible therefore your patch is not a fix, it's just a > workaround... did you tried my patch? I attach it again here, try it... > > > > > Thanks, > Donald > > 2009/2/10 Alexander Malysh <[email protected]> > >> Hi, >> >> yes, your patch seems to fix gwthread_wakeup but it's wrong too because we >> _may_ not sleep on transceiver bind because we could take too long to >> respond to dlr/mo. I have patch here for throttling, will try to rebase >> it... >> >> Thanks, >> Alex >> >> Donald Jackson schrieb: >> >> Hi everyone, >>> >>> Here is a patch I have created for SMPP throttling. To easily >>> duplicate the bug you can take the following actions: >>> >>> -- Configure SMPP bind with very low throughput (ie: 0.1) >>> -- Send 100 messages in quick succession >>> >>> What you can see from the debug output times is that when >>> send_messages() is supposed to be sleeping for throttling purposes, it >>> will get woken up by send_msg_cb()'s >>> gwthread_wakeup(smpp->transmitter); call. >>> >>> This causes inaccuracy in the sleep time as the thread is prematurely >>> woken up. This causes many throttling errors on high volume/load >>> Kannel installations because of the increased throttling errors and >>> the current default throttling sleep time which I see is being changed >>> ;) My patch simply let's send_messages() indicate that it is sleeping >>> for throttling purposes and shouldn't be woken up. >>> >>> Good luck! >>> -- >>> Donald Jackson >>> http://www.ddj.co.za/ >>> donaldjster(a)gmail.com >>> >> >> >> > > > -- > Donald Jackson > http://www.ddj.co.za/ > donaldjster(a)gmail.com > > > > -- Donald Jackson http://www.ddj.co.za/ donaldjster(a)gmail.com
