Newsgroups: vmsnet.mail.pmdf
Subject: Looping mail
From: "Mark H. Wood" <imhw400@indyvax.iupui.edu>
Date: 15 Oct 1992 13:32:19 -0500
Organization: Indiana University - Purdue University at Indianapolis
Return-Path: <epmdf@YMIR.CLAREMONT.EDU>
Resent-Date: 15 Oct 1992 13:32:19 -0500
Resent-From: epmdf@YMIR.CLAREMONT.EDU
Errors-To: epmdf@YMIR.CLAREMONT.EDU
Resent-Message-ID: <01GPZ5HE96Z68WXJ5Q@YMIR.CLAREMONT.EDU>
X-Vms-To: IN%"IPMDF@YMIR.CLAREMONT.EDU"
X-Vms-Cc: IMHW400
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-Transfer-Encoding: 7BIT

We're running PMDF V4.1-6 under VMS V5.5.  Two days ago the local channel
started looping all mail queued to it.  Eventually it all gets .HELD.  Outgoing
mail seems to be leaving the system just fine, but no incoming mail is being
delivered.

The strange thing is that nothing changed on Tuesday!  I haven't edited
PMDF.CNF in months, and the files that it includes were last updated on
4-Oct-1992.  PMDF TEST/REWRITE shows nothing strange when fed local addresses.

I've rebuilt and reinstalled the configuration database a number of times,
INSTALL REMOVEd the PMDF images and rerun PMDF_STARTUP, renamed the queue cache
away and let PMDF rebuild it, and any other desperate thing I could think of.
The looping files are not destined for users with forwarding problems, or
indeed any kind of forwarding; all users are affected.

I've attached my PMDF.CNF, an L_MASTER.LOG with slave_debug turned on, the
rerouted file that resulted from that run, and output from PMDF TEST/REWRITE
for a local address.  Any suggestions for solutions or further investigation
would be appreciated.  Obviously I can't receive mail here, but you can reach
me at IMHW400@INDYCMS.IUPUI.EDU and I'll be watching vmsnet.mail.pmdf as well.

!	Rules and channel blocks that must be maintained by hand.
!	Mark H. Wood, 18-Aug-1989
!
!	This host
!
INDYVAX					$U@INDYVAX.IUPUI.EDU
INDYVAX.BITNET				$U@INDYVAX.IUPUI.EDU
IVAX					$U@INDYVAX.IUPUI.EDU
INDYVAX.IUPUI.EDU			$U@INDYVAX.IUPUI.EDU
!
!	Non-BITNET NJE nodes
!
ISBH					$U%ISBH@JNET-DAEMON
ISBH.BITNET				$U%ISBH@JNET-DAEMON
!
! Rewrite rules for TCP/IP domain literals
!
[134.68.1.2]                            $U@indyvax.iupui.edu
[]                                      $U%[$L]@WTCP-DAEMON
!
! Rewrite for BITNET gateways
!
BITNET-GATEWAY                          $U@BITNET-GATEWAY
!
! Rewrites for internal processing channels
!
reprocess.indyvax.iupui.edu             $U@reprocess.indyvax.iupui.edu
defragment.indyvax.iupui.edu            $U@defragment.indyvax.iupui.edu
!
!	Hack to hide brokenness of VINES header parsing
!
VINES.IUSB.INDIANA.EDU		$U$@VINES.IUSB.INDIANA.EDU%IUGATE.DECNET
SBVINES.IUSB.INDIANA.EDU	$U$@SBVINES.IUSB.INDIANA.EDU%IUGATE.DECNET
!
!	Default rules
!
.CSNET			$U%$H.CSNET@WTCP-DAEMON
.DECNET			$U%$H@DECNET-MAIL
.MAILNET		$U%$H.MAILNET@WTCP-DAEMON
.PROFS			$U%$H@PROFS-MAIL
.SMTP			$U%$H@WTCP-DAEMON
.UUCP			$U%$H
!
!	Rewrites for all official Internet top-level domains
!
<PMDF_ROOT:[TABLE]TCPIP.RULES
!
!	Rewrites for known DECnet nodes, to protect them from UUCP and BITNET
!	impostors
!
INDYGI.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
INDYGI			$U@INDYGI.IUPUI.EDU
ISDGIS.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
ISDGIS			$U@INDYGI.IUPUI.EDU
LASIR1.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR1			$U@INDYGI.IUPUI.EDU
LASIR2.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR2			$U@INDYGI.IUPUI.EDU
LASIR3.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR3			$U@INDYGI.IUPUI.EDU
LASIR4.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR4			$U@INDYGI.IUPUI.EDU
LASIR5.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR5			$U@INDYGI.IUPUI.EDU
LASIR6.IUPUI.EDU	$U@INDYGI.IUPUI.EDU
LASIR6			$U@INDYGI.IUPUI.EDU
<PMDF_ROOT:[TABLE]DECNET.RULES
!
!	Rewrites for BITNET nodes and gateways
!
<PMDF_ROOT:[TABLE]BITNET.RULES
<PMDF_ROOT:[TABLE]GATES.RULES
!
!	Channel table

!
!	local channel
!
l 822 bidirectional slave_debug noserviceall nosendpost nox_env_to defragment charset7 us-ascii charset8 iso-8859-1
INDYVAX.IUPUI.EDU

!
!	DECnet SMTP channel
!
dsmtp_local single_sys smtp immediate
dsmtp-daemon
INDYGI.IUPUI.EDU	INDYGI

!
!	DECnet MAIL channel
!
d 733 nosendpost nox_env_to defragment linelength 255 charset7 us-ascii charset8 iso-8859-1
DECNET-MAIL IVAX
IUGATE.DECNET		IUGATE
GOLD.DECNET		GOLD
AQUA.DECNET		AQUA
JADE.DECNET		JADE
PRISM.DECNET		PRISM
ROSE.DECNET		ROSE
AMBER.DECNET		AMBER

!
!	Jnet NJE channel
!
bit_local 733 single nosmtp nosendpost nox_env_to
JNET-DAEMON INDYVAX.BITNET

!
!	Jnet BITNET gateway channel (for local BSMTP support)
!
bit_gateway
BITNET-GATEWAY

!
!	Jnet PROFS channel
!
mail_profs 733
PROFS-MAIL INDYVAX

!
!	Wollongong TCP/IP channel
!
wtcp_local single_sys smtp nosendpost nox_env_to mx
WTCP-DAEMON

!
! Channel to reassemble MIME message/partial parts
!
defragment nox_env_to
defragment.indyvax.iupui.edu

!
! Channel to handling reprocessing jobs
!
reprocess nox_env_to
reprocess.indyvax.iupui.edu

!
! PMDF-FAX channels
!
!<PMDF_ROOT:[TABLE]FAX.CHANS

!
! PMDF-MR channels
!
!<PMDF_ROOT:[TABLE]MR.CHANS

!
!	BITNET gateway channels
!
<PMDF_ROOT:[TABLE]GATES.CHANS

!
!	Mail-based file and list services channel
!
mailserv logging
mailserv-daemon

$   @_$20$DUS21:[PMDF.V040-2.EXE]MASTER.COM;117 L NOPOLL 15-OCT-1992:13:02:20.86 01GPZ8MATJ5200257Z
$ ! MASTER.COM - Initiate delivery of messages queued on a channel
$ !
$ ! Modification history and parameter definitions are at the end of this file.
$ !
$ ! Fix command definitions
$ !
$ close = "close"
$ deallocate = "deallocate"
$ deassign = "deassign"
$ define = "define"
$ directory = "directory"
$ exit = "exit"
$ goto = "goto"
$ mail = "mail"
$ on = "on"
$ open = "open"
$ run = "run"
$ set = "set"
$ wait = "wait"
$ ! Redefinition of some or all of these does not work with VMS versions
$ ! prior to VMS 5.4.
$ ! if = "if"
$ ! then = "then"
$ ! else = "else"
$ ! endif = "endif"
$ !
$ set noon
$ if f$logical("PMDF_ROOT") .eqs. "" then exit
$ !
$ ! Clean up and set up channel name, if on hold just exit
$ !
$ channel_name = f$edit(p1, "COLLAPSE,LOWERCASE")
$ hold_list = "," + f$edit(f$logical("PMDF_HOLD"), "COLLAPSE,LOWERCASE") + ","
$ if f$locate("," + channel_name + ",", hold_list) .lt. -
     f$length(hold_list) then exit
$ define/process pmdf_channel "l"
$ !
$ ! Save state information, set up environment properly
$ !
$ save_process_name = f$getjpi(0,"PRCNAM")
$ process_name = "PMDF " + f$extract(0,10,channel_name)
$ set process/name="PMDF l"
$ save_directory = f$environment("DEFAULT")
$ set default pmdf_root:[queue]
$ save_protection = f$environment("PROTECTION")
$ set protection=(s:rwed,o:rwed,g,w)/default
$ save_privileges = f$setprv("NOSHARE")
$ !
$ if f$logical("PMDF_DEBUG") .eqs. "" then on control_y then goto out
$ !
$ ! Set up symbols and logicals for possible listing
$ !
$ dirlst_file = "pmdf_root:[log]" + channel_name + "_master_dirlst_" + -
  f$getjpi("", "PID") + ".tmp"
$ if p3 .eqs. "" then p3 = "1-JAN-1970"
$ define/process pmdf_since "15-OCT-1992:13:02:20.86"
$ !
$ ! We no longer create a listing file -- this command is for reference
$ ! purposes only.
$ !
$ ! define/process outbound 'dirlst_file'
$ ! $ directory/nohead/notrail/colu=1/sinc="'p3'"/outp='dirlst_file'-
$ !   pmdf_root:[queue.'channel_name']*.%%;*
$ !
$ ! Determine whether or not a connection should really be made
$ !
$ if p2 .eqs. "POLL" then goto connection_ok
$ if f$search("pmdf_root:[queue.l]*.%%;") .eqs. "" then goto out1
$ p9 = f$search("")
$ connection_ok:
$ !
$ ! Handle various channels specially
$ !
$ if channel_name .eqs. "bitbucket"  then goto bitbucket_channel
$ if channel_name .eqs. "d"          then goto DECnet_compatibility_channel
$ if channel_name .eqs. "defragment" then goto defragment_channel
$ if channel_name .eqs. "directory"  then goto dir_channel
$ if channel_name .eqs. "l"          then goto local_channel
$ local_channel:
$ MAIL_channel:
$ DECnet_compatibility_channel:
$ !
$ ! We now delivery it all with one invocation of MAIL_SERVER. Speeds things
$ ! up a LOT!
$ !
$ define/user outbound pmdf_root:[log]l_master_dirlst_0001B673.tmp
$ run pmdf_root:[exe]list.exe
$ !
$ priv_list = f$setprv("SYSPRV, DETACH, BYPASS")
$ if f$logical("PMDF_MESSAGE_FILE") .nes. "" then close/nolog queue_file
$ open/read pmdf_message_list pmdf_root:[log]l_master_dirlst_0001B673.tmp
$ !
$ local_loop_1:
$   mail/protocol=pmdf_mailshr
mm_init has been called.
qu_init has been called.
deliver_init has been called.
  Translating PMDF_MESSAGE_LIST
  Trying to open message list file.
Finding and opening message file.
Opening PMDF_ROOT:[QUEUE.l]ZZ01GPZ8ME078800257Z.00
Open successful.
Checking for possible ERAC request message.
deliver_winit has been called.
Checking addresses for various delivery mechanisms.
Address IMHW400 determined to be local to VMS MAIL.
Processing headers.
  Adding Return-path:.
setup_do_returns called.
MAIL_IN_CONNECT returning.
MAIL_IN_LINE called with: 9
IN_SENDER option used.
VMS version  V5
copy_vstring_to_descr called.
String copied: "IN%"SYSTEM@INDYVAX.IUPUI.EDU""
IN_SENDER option finished.
MAIL_IN_LINE returning.
MAIL_IN_LINE called with: 10
IN_CKUSER option used.
PUSH called.
  after PUSH:
         USER_CHECK
            BAD_MSG
  PMDF To: address: IMHW400
  VMS MAIL To: address: IMHW400
copy_vstring_to_descr called.
String copied: "IMHW400"
IN_CKUSER option finished.
MAIL_IN_LINE returning.
MAIL_OUT_CONNECT called.
copy_descr_to_vstring called.
String copied: "IN"
copy_descr_to_vstring called.
String copied: ""
  Clearing trouble flag.
  Protocol = "IN%"
  Node = ""
MAIL_OUT_CONNECT returning.
MAIL_OUT_LINE called with:         1
  OUT_SENDER option used.
copy_descr_to_vstring called.
String copied: "IN%"SYSTEM@INDYVAX.IUPUI.EDU""
MAIL_OUT_LINE returning.
MAIL_OUT_CHECK called with: 2
  CKUSER option used.
copy_descr_to_vstring called.
String copied: "IMHW400"
copy_descr_to_vstring called.
String copied: ""
  Associated protocol: "IN%"
  Associated protocol node: ""
  PMDF address result: "IMHW400"
MAIL_OUT_CHECK returning.
MAIL_IO_WRITE called.
TOP_OF_STACK called.
 returning      USER_CHECK
User check.
 got a stat: 1
MAIL_IO_WRITE returning.
MAIL_IN_LINE called with: 10
IN_CKUSER option used.
POP called.
  after POP:
            BAD_MSG
copy_vstring_to_descr called.
String copied: "
IN_CKUSER option finished.
MAIL_IN_LINE returning.
MAIL_IN_LINE called with: 11
IN_TO option used.
copy_vstring_to_descr called.
String copied: "IN%"IMHW400@INDYVAX.IUPUI.EDU""
IN_TO option finished.
MAIL_IN_LINE returning.
MAIL_IN_LINE called with: 16
IN_CC option used.
copy_vstring_to_descr called.
String copied: ""
IN_CC option finished.
MAIL_IN_LINE returning.
MAIL_IN_LINE called with: 12
IN_SUBJ option used.
copy_bigvstring_to_descr called.
String copied: "hi"
IN_SUBJ option finished.
MAIL_IN_LINE returning.
MAIL_IN_ATTRIBS called.
MAIL_IN_ATTRIBS returning.
MAIL_IN_FILE called.
Providing attop header RFAs.
Copying message body.
Copy complete -- 1 line(s) copied.
PUSH called.
  after PUSH:
     DELIVERY_CHECK
            BAD_MSG
MAIL_IN_FILE returning.
MAIL_OUT_CHECK called with: 2
  CKUSER option - user list terminated.
MAIL_OUT_CHECK returning.
MAIL_OUT_LINE called with:         3
  OUT_TO option used.
copy_descr_to_bigvstring called.
String copied: "IN%"IMHW400@INDYVAX.IUPUI.EDU""
MAIL_OUT_LINE returning.
MAIL_OUT_LINE called with:        17
  OUT_CC option used.
copy_descr_to_bigvstring called.
String copied: ""
MAIL_OUT_LINE returning.
MAIL_OUT_LINE called with:         4
  OUT_SUBJ option used.
copy_descr_to_bigvstring called.
String copied: "hi"
MAIL_OUT_LINE returning.
MAIL_OUT_ATTRIBS called.
MAIL_OUT_ATTRIBS returning.
MAIL_OUT_FILE called.
  Initializing header and filename storage.
  Fixing RAB for proper read mode.
  The BIO field of the RAB is set  FALSE
  Header location information: start = 0, end = 13, skip = 0
  Reading headers from forwarded message.
  Resetting to beginning of file.
  Supplying missing message headers.
  Adding X-VMS-Cc: header.
  Building To: and Cc: headers from address list.
    Processed X-VMS-To: line:
 IMHW400@INDYVAX.IUPUI.EDU
    Processed X-VMS-Cc: line:
  Scanning stored address...
   List address: "IMHW400"
    Expanded address:
      IMHW400@INDYVAX.IUPUI.EDU     No match; put on To: line by default.
  Final To: line:
 IMHW400@INDYVAX.IUPUI.EDU
  Final Cc: line:
  Adding To: header.
  Copying message body in text mode.
  Header detected; skipping...
  Copy complete -- 1 line(s) copied.
  Finishing PMDF message submission.
MAIL_OUT_FILE returning.
MAIL_OUT_CHECK called with: 6
  CKSEND option used.
MAIL_OUT_CHECK returning.
MAIL_IO_WRITE called.
TOP_OF_STACK called.
 returning  DELIVERY_CHECK
Delivery check, got a stat: 1
MAIL_IO_WRITE returning.
MAIL_OUT_DEACCESS called.
MAIL_OUT_DEACCESS returning.
MAIL_IN_LINE called with: 9
IN_SENDER option used.
start_message called.
Initializing state stack.
INIT_STACK called.
PUSH called.
  after PUSH:
            BAD_MSG
finish_message called.
Closing and deleting the message file.
mm_init has been called.
Finding and opening message file.
Message list exhausted; exiting...
do_returns called.
finish_message called.
$   if .not. $status then goto local_loop_1
$ !
$ priv_list = f$setprv(priv_list)
$ close pmdf_message_list
$ delete pmdf_root:[log]l_master_dirlst_0001B673.tmp;*
$ goto out1
$ out1:
$ !
$ ! Common exit point - clean up things first
$ !
$ out:
$ if f$logical("PMDF_CHANNEL") .nes. "" then deassign/process pmdf_channel
$ if f$logical("PMDF_SINCE") .nes. "" then deassign/process pmdf_since
$ if f$logical("PMDF_DATA") .nes. "" then close pmdf_data
$ if f$logical("PMDF_MESSAGE_LIST") .nes. "" then close pmdf_message_list
$ if f$logical("PMDF_DEVICE") .eqs. "" then goto restore
$ restore:
$ !
$ ! Restore saved stuff
$ !
$ set protection=(SYSTEM=RWED, OWNER=RWED, GROUP, WORLD)/default
$ set default SYS$SYSROOT:[SYSMGR]
$ set process/priv=(SHARE)
$ set process/name="<PMDF-8605>"
$ !
$ exit
$   deassign SYS$OUTPUT

m;SYSTEM@INDYVAX.IUPUI.EDU
IMHW400

Received: from INDYVAX.IUPUI.EDU by INDYVAX.IUPUI.EDU (PMDF #2673 ) id
 <01GPZ8N4OYF4002ELV@INDYVAX.IUPUI.EDU>; Thu, 15 Oct 1992 13:03:05 -0500
Received: from INDYVAX.IUPUI.EDU by INDYVAX.IUPUI.EDU (PMDF #2673 ) id
 <01GPZ8MASZUS00257Z@INDYVAX.IUPUI.EDU>; Thu, 15 Oct 1992 13:02:25 -0500
Date: 15 Oct 1992 13:02:24 -0500
From: SYSTEM@INDYVAX.IUPUI.EDU
Subject: hi
Resent-to: IMHW400@INDYVAX.IUPUI.EDU
To: IMHW400@INDYVAX.IUPUI.EDU
Resent-message-id: <01GPZ8N4SPG2002ELV@INDYVAX.IUPUI.EDU>
Message-id: <01GPZ8MATJ5200257Z@INDYVAX.IUPUI.EDU>
X-VMS-To: IN%IMHW400
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT

there