Hi,

I have attached a patch that addresses the two issues that I mentioned
in my previous mail. Could someone test this patch with the current Kannel
code base as I have been unable to :-(

The race condition is fixed by locking the SMSCConn flow_mutex when the
status
of the connection is changed.

The issue of the driver not accepting messages occurs when the receiver
thread
disconnects, the connection status goes from SMSCCONN_ACTIVE to
SMSCCONN_RECONNECTING. The status is changed to SMSCCONN_ACTIVE_RECV when
the
receiver is back online.

What should the smscconn status be when the receiver is offline and the
transmitter is online or vice versa?

If it is SMSCCONN_RECONNECTING then no messages can be sent, if it is
SMSCCONN_ACTIVE
then messages can be sent but the status page shows no problem with the
receiver
connection being down.

The approach I have taken is to set the status to be SMSCCONN_RECONNECTING
when either
the transmitter or receiver go down. This allows an administrator to see the
problem
immediately. Plus I did not want to make changes to the SMSCConn module for
just the
SMPP driver.

Any comments or suggestions?

Michael.

ANAM Wireless Internet Solutions
http://www.anam.com mailto:[EMAIL PROTECTED]
+353 1 284 7555
Castle Yard, Saint Patrick's Road, Dalkey, County Dublin, Ireland

> -----Original Message-----
> From: Indrek Mandre [mailto:[EMAIL PROTECTED]]
> Sent: 21 January 2003 17:40
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: Notice of issue in SMPP Driver
>
>
> Is there a patch for this?  What is the status of this bug?
> And the race
> condition?
> I've had cases of similar behaviour where the driver fails to send
> messages out
> and nothing else but a restart helps.
>
> I understood from the following messages that this is a
> fundamental problem
> with the smpp driver. How to fix this?
>
> Regards,
> Indrek
>
>
> Michael Mulcahy wrote:
>
> >Hi All,
> >
> >There is a bug in the current SMPP driver that stops the driver from
> >accepting messages to be submitted to the SMSC.
> >
> >Scenario:
> >SMPP SMSC configured as receiver and transmitter, transmitter and
> >receiver connected and bound successfully.
> >1) Receiver SMPP connection disconnects
> >2) SMPP SMSC status changed to SMSCCONN_RECONNECTING
> >3) Receiver SMPP connection reconnects to SMSC after reconnect delay
> >   and sends bind_receiver pdu
> >4) In handling of bind_receiver_resp the status is incorrectly set to
> >   SMSCCONN_ACTIVE_RECV as the previous status was
> SMSCCONN_RECONNECTING
> >   (This does not take into account that the transmitter is still
> >successfully
> >   connected)
> >5) Now the driver cannot receive any messages for submission to SMSC
> >   as status is not SMSCCONN_ACTIVE.
> >
> >There also appears to be a potential race condition in the
> >handling of the bind_transmitter_resp and the
> bind_receiver_resp pdus,
> >the status variable is modified in both places and is not protected.
> >
> >Regards,
> >Michael Mulcahy.
> >
> >ANAM Wireless Internet Solutions
> >http://www.anam.com mailto:[EMAIL PROTECTED]
> >+353 1 284 7555
> >Castle Yard, Saint Patrick's Road, Dalkey, County Dublin, Ireland
> >
> >
> >
> >

Attachment: smpp_patch
Description: Binary data

Reply via email to