[net.unix-wizards] Help on Sendmail

reba%carcvax.uconn.csnet@csnet-relay.arpa (Reba Kraus) (02/11/86)

  I am having a frustrating problem with the 4.2BSD UNIX "sendmail"
program. I modified the "conf.c" file (checkcompat) to include 
some user-screening, and can no longer to get a working version 
of "sendmail" (except from backup tapes!), even when I restore the
original conf.c file!! 
When I tried recompiling again, the exact commands were 
(on a VAX780/4.2BSD):

			(from the "sendmail" directory)
			cd lib
			make
			cd src
			make	
			install -s -m 4755 src/sendmail /usr/lib/sendmail

  Then, I executed sendmail:
			cd /usr/spool/mqueue
			/usr/lib/sendmail -bd -q1h &

  Within a few seconds, this message appears:
    [1] Segmentation Fault /usr/lib/sendmail -bd -q1h (core dumped)

Dbx showed the reference to occur in "malloc" --- called from "openlog"
(in the "lib/syslog.c" file). 

I suspect that there is a "make" option that I am not supplying 
when I compile the sources. However, the "Sendmail Installation and 
Operation Guide" doesn't specify any options (pages 2-3).
I would greatly appreciate any information on this problem. 
Responses can be sent directly to me:

		reba@UCONN@CSNET-RELAY

Thanks in advance - 

Reba Kraus

Univ. of Connecticut
Computer Applications and Research Center (CARC)
(203) 486-5306
	

bzs@bu-cs (Barry Shein) (02/11/86)

Segmentation violation from Sendmail...


Quick guess: delete /usr/lib/sendmail.fc, kill the running sendmail,
run '/usr/lib/sendmail -bz' to re-build the frozen configuration file
and restart your sendmail daemon. The frozen config file gets blind-loaded
into memory and assumes it was produced by the same image as is loading
it, any changes will trash memory.

	-Barry Shein, Boston University

But why did re-building the original cause a problem? Maybe a library
loaded in during the build changed? Try it.

chris@umcp-cs.UUCP (Chris Torek) (02/12/86)

reba%carcvax.uconn.csnet@csnet-relay.arpa is having problems with
a new sendmail core dumping in malloc.

Your troubles are obvious to anyone who has run into them before.
You have a frozen config file (made by /usr/lib/sendmail -bz).
These depend not only on the configuration source file, but also
(get this) on the exact address of every little thing in your
sendmail binary.  Why?  Because the freeze file format is not well
designed (read: is a crock).

The solution is to ensure that whenever you install sendmail,
you also remove /usr/lib/sendmail.fc.  The `install' entry in
/usr/src/usr.lib/sendmail, and the one in /usr/src/usr.lib/sendmail/src
as well (why are there two?  ridiculous!), should do this for
you.

(In case it is not already obvious, I think large parts of sendmail
are long overdue for a complete redesign and rewrite.)  (But I do
not promise to do it!)
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris@mimsy.umd.edu

berliner@convex.UUCP (02/14/86)

>  Within a few seconds, this message appears:
>    [1] Segmentation Fault /usr/lib/sendmail -bd -q1h (core dumped)

> Dbx showed the reference to occur in "malloc" --- called from "openlog"
> (in the "lib/syslog.c" file). 

I have had something like this happen to me once also.  Try removing the
/usr/lib/sendmail.fc file before starting up the newly compiled sendmail.

Also, do a "ps aux | grep sendmail" and kill off any of them that are running
before starting up the new sendmail.

You can then freeze the config file via /usr/lib/sendmail -bz

Brian Berliner
CONVEX Computer Corp.
{ihnp4,uiucdcs,rice,sun}!convex!berliner