[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Another problem with abandon



If the client is multi-threading these messages, and/or the server is mutithreading its handling of these requests, how is the order of requests determined?

Also, we need to allow for LDAP to be transferred over other transports (like UDP) which don't guarantie delivery.

Jim

>>> John McMeeking <jmcmeek@us.ibm.com> 11/04/02 07:22AM >>>
                                                                                                               
                                                                                                               
                                                                                                               


I can see the problem, but it seems like it could be handled on the server
side.  The server shouldn't abandon a request that is received after the
abandon request.  TCP/IP delivers these messages to the server in order, so
at a protocol level, it doesn't seem like this particular problem exists.
It may be worth a cautionary note to server implementors.


John  McMeeking



                                                                                                                               
                      "Jim Sermersheim"                                                                                        
                      <jimse@novell.com>          To:       <ietf-ldapbis@OpenLDAP.org>                                        
                      Sent by:                    cc:                                                                          
                      owner-ietf-ldapbis@O        Subject:  Another problem with abandon                                       
                      penLDAP.org                                                                                              
                                                                                                                               
                                                                                                                               
                      11/01/2002 12:31 PM                                                                                      
                                                                                                                               
                                                                                                                               



Due to abandon not having a response, I've found another little problem
with message ID re-use.

The current protocol draft says that a client can re-use a messageID as
long as it can be determined that the operation associated with that
messageID has completed (this can be determined either by seeing a response
to the earlier message, or completing a successful bind).

Here's the problem:

MessageID 1 is used for an operation, the server is processing this op.
Abandon is sent for MessageID 1
A response is sent for operation 1
The client, seing that operation 1 has returned a response, uses messageID
1 again for another operation
This next message reaches the server, and is processed before the
previously sent abandon request.
The previous abandon request ends up abandoning the second operation.

I'm not sure yet how to fix this. If we say that:
- a messageID cannot be reused until a subsequent bind, we limit the number
of messages between binds to maxInt.
- a messageID of an abandoned operation cannot be reused, it limits the
number of abandoned messages between binds to maxInt.

I sure wish abandon had a resonse...

Jim