[comp.mail.sendmail] New sendmail error...

hogan@csl.sri.com (Emmett Hogan) (05/15/91)

Some of the users here have started getting strange "bounce" messages
from sendmail, although nothing that I know of has changed:

	Machines: Sun 4/40 and Sun 3/60
	OS: SunOS 4.1.1 and SunOS 4.0.3
	Sendmail: XIDA Sendmail 5.61.14/XIDA-1.2.8.27 on clients
		  XIDA Sendmail 5.64+/XIDA-1.2.8.35 on mailhost
	Error Messages:

	451 makeconnection: server "smtp" unknown: Invalid argument
	554 machine.name (TCP)... 554 System file missing
	554 user@machine.name... System file missing

	where machine.name is the name of the machine TO which the
	message is being sent, and user@machine.name is the user TO
	whom the mail message is being sent.  It has happened on
	strictly local mail as well as "off site" mail.

If any has any ideas as to what these messages mean, PLEASE help.
Unfortunately, this is not reproducible, one minute the message will
bounce, then we turn around and send the EXACT same message and it
will go through fine.

Any suggestions/comments/flames are welcome,

Thanks,
Emmett


--
-------------------------------------------------------------------
Emmett Hogan              Computer Science Lab, SRI International
Inet: hogan@csl.sri.com
UUCP: {ames, decwrl, pyramid, sun}!fernwood!hercules!hogan
USMAIL: EL231, 333 Ravenswood Ave, Menlo Park, CA  94025
PacBell: (415)859-3232 (voice), (415)859-2844 (fax)
ICBM: 37d 27' 14" North, 122d 10' 52" West
-------------------------------------------------------------------

karl.kleinpaste@osc.edu (05/15/91)

hogan@csl.sri.com writes:
   Some of the users here have started getting strange "bounce" messages
   from sendmail, although nothing that I know of has changed:
     451 makeconnection: server "smtp" unknown: Invalid argument
     554 machine.name (TCP)... 554 System file missing
     554 user@machine.name... System file missing

YP sucks.

The problem is that sendmail is asking for the numeric port identifier
associated with the "smtp" service.  This comes from /etc/services in
normal BSD UNIX systems, and from the YP services map in mutant SunOS
systems.  Your YP server is overloaded and didn't respond in time, and
sendmail doesn't retry the request.

Nothing to be done but
	[a] de-overload your YP server.
	[b] hardcode "25" where it asks for "smtp" in daemon.c.
	[c] nuke YP as a whole with the biggest weapon you can find.

--karl

chet@odin.INS.CWRU.Edu (Chet Ramey) (05/21/91)

In article <1991May15.012841.2008@oar.net> karl.kleinpaste@osc.edu writes:
>YP sucks.

No argument here.

>The problem is that sendmail is asking for the numeric port identifier
>associated with the "smtp" service.  This comes from /etc/services in
>normal BSD UNIX systems, and from the YP services map in mutant SunOS
>systems.  Your YP server is overloaded and didn't respond in time, and
>sendmail doesn't retry the request.
>
>Nothing to be done but
>	[a] de-overload your YP server.
>	[b] hardcode "25" where it asks for "smtp" in daemon.c.
>	[c] nuke YP as a whole with the biggest weapon you can find.

While I personally favor [c], we've had good success with replacing all
calls to `getservbyname' in the sendmail source with the following:

#ifdef CWRU
        for (t = 0; t < 5; t++)
        {
                sp = getservbyname("smtp", "tcp");
                if (sp)
                        break;
                sleep(2);
        }
#else
        sp = getservbyname("smtp", "tcp");
#endif /* CWRU */

Chet
-- 
Chet Ramey			  Internet: chet@po.CWRU.Edu
Case Western Reserve University	  NeXT Mail: chet@macbeth.INS.CWRU.Edu

``Now,  somehow we've brought our sins back physically -- and they're pissed.''

demizu@nff.ncl.omron.co.jp (DEMIZU Noritoshi) (05/21/91)

In article <1991May20.205133.19701@usenet.ins.cwru.edu>
	chet@odin.INS.CWRU.Edu (Chet Ramey) writes:

 |In article <1991May15.012841.2008@oar.net> karl.kleinpaste@osc.edu writes:

 |>The problem is that sendmail is asking for the numeric port identifier
 |>associated with the "smtp" service.  This comes from /etc/services in
 |>normal BSD UNIX systems, and from the YP services map in mutant SunOS
 |>systems.  Your YP server is overloaded and didn't respond in time, and
 |>sendmail doesn't retry the request.
 |>
 |>Nothing to be done but
 |>	[a] de-overload your YP server.
 |>	[b] hardcode "25" where it asks for "smtp" in daemon.c.
 |>	[c] nuke YP as a whole with the biggest weapon you can find.

Here's my patch for it.

*** daemon.c.ORG	Tue May 21 18:13:23 1991
--- daemon.c	Tue May 21 18:14:24 1991
***************
*** 367,374 ****
  
  		if (sp == NULL)
  		{
! 			syserr("makeconnection: server \"smtp\" unknown");
! 			return (EX_OSFILE);
  		}
  		SendmailAddress.sin_port = sp->s_port;
  	}
--- 367,374 ----
  
  		if (sp == NULL)
  		{
! 			syserr("makeconnection: service \"smtp/tcp\" unknown");
! 			return EX_OSERR;
  		}
  		SendmailAddress.sin_port = sp->s_port;
  	}


 |While I personally favor [c], we've had good success with replacing all
 |calls to `getservbyname' in the sendmail source with the following:

I did the samething in getrequests() in daemon.c

--
;  DEMIZU, Noritoshi		OMRON Computer Systems R&D laboratory
;  demizu@nff.ncl.omron.co.jp	tel: 075-951-5111  fax: 075-956-7403