LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Eric Thomas <ERIC@FRECP11>
Sat, 12 Mar 88 16:12:00 SET
text/plain (88 lines)
An asynchronous  inter-LISTSERV request protocol has  been implemented to
solve a problem with the DELETE/SIGNOFF command.
 
When you  issue a SIGNOFF command  with the (default) UPCASE  option to a
list, and cannot be found on it,  the list owners will receive a piece of
mail telling you about this attempt, so that they can search the list for
possible (synonym) addresses  (see my append re: "Changes  to the SIGNOFF
processing" for more details).
 
This works perfectly  for non-peered lists. However, with  peered ones we
have a serious problem: we don't want the owners to receive this piece of
mail unless the  person trying to sign  off could not be found  on ANY of
the  peers. This  means  that the  "last" peer  must  send the  mailform.
Unfortunately there is no such thing  as a "last" peer: the various peers
form a linked graph where there is  no end nor tail, and, considering the
asynchronous nature of the NJE network, there  is no way to know which is
the "last" peer. The  only sure thing is that the "first"  one is the one
which  receives the  original request  from the  user. Besides,  whenever
there is a fork in the graph, there  is a chance that one of the branches
will succeed in finding the user while the other won't.
 
To solve this problem, I  had to introduce a request-and-answer protocol.
Each  server will,  when its  turn comes,  generate a  unique request  id
associated with  the SIGNOFF  (or DELETE) request.  For each  request id,
there are sub-ids assigned to the  various peers linked to the local one.
Each such peer will  receive a (reqid,subid) pair and use  it to reply to
the issuing  server when  appropriate. A  success generates  an immediate
reply,  whereas a  failure doesn't  generate a  reply unless  the request
could  not be  forwarded  to another  peer (dead  branch).  If it  could,
another request id is generated, which will eventually get replied to and
will cause this reply to be forwarded to the original issuer. All of this
is  under  the supervision  of  a  "request  monitor" that  will  timeout
anything older than 7 days (for obvious reasons).
 
This protocol  is general enough to  be usable for other  things than the
DELETE/SIGNOFF command  processors. For  example, it  would make  it very
easy  to implement  an "authority  checking" mechanism  whereby a  server
could ask  another server whether  some user  has some authority  or not,
without having to wait for the reply.
 
If you send a SIGNOFF request to a peered list without the GLOBAL option,
and couldn't be found on it, you'll get the following message:
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
You have not  subscribed to list TEST-L. You might  wish to re-issue your
command with the GLOBAL option, ie "SIGNOFF TEST-L (GLOBAL", to have your
name searched on all the peers instead of just the FRECP11 one.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
If you  then issue a  SIGNOFF (GLOBAL command  and you couldn't  be found
anywhere, you'll get the usual message  sent to the list owners. You may,
alternatively, get this:
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Date:         Thu, 10 Mar 1988 22:57 SET
From:         Revised List Processor (1.5n) <LISTSERV@FRECP11>
Subject:      Message
To:           Local VM Wizard <WIZARD@FRECP11>
 
Inter-server asynchronous  requests timed out for  your command: "SIGNOFF
TEST-L". You might wish to re-issue  the command if you have not received
any personal notification of its completion.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
For a  DELETE command,  you'll get  this message if  the person  you were
attempting to delete couldn't be found on any of the peers:
 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Date:         Sat, 12 Mar 1988 15:48 SET
From:         Revised List Processor (1.5n) <LISTSERV@FRECP11>
Subject:      Message
To:           Eric Thomas <ERIC@FRECP11>
 
User NETINFO@FRECP11 could not be found on any peer for list TEST-L.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
Note that  none of this  will work properly unless  all the peers  in the
chain are 1.5n.  For a hybrid peer  chain, you will get  the 1.5m replies
plus a "timeout" message from the server you issued the request to, if it
was 1.5n; if you issue your command  to a 1.5m server, no request will be
generated and you will get pure 1.5m behaviour.
 
If  this works  correctly, I  plan to  remove the  "Request forwarded  to
listid@node" messages  in the next  release, or set them  to "interactive
message or nothing". They are quite painful on a mail-only node...
 
  Eric

ATOM RSS1 RSS2