Subject: pkg/23297: mimedefang aborts with pth error message
To: None <gnats-bugs@gnats.netbsd.org>
From: Klaus Heinz <k.heinz.okt.drei@onlinehome.de>
List: netbsd-bugs
Date: 10/28/2003 23:18:31
>Number:         23297
>Category:       pkg
>Synopsis:       mimedefang aborts with pth error message
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Oct 28 22:19:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Heinz
>Release:        NetBSD 1.5.3 and 1.6
>Organization:
none
>Environment:
System: NetBSD silence.homedns.org 1.5.3 NetBSD 1.5.3 (SILENCE) #2: Tue Nov 26 18:16:24 MET 2002 root@silence.homedns.org:/var/tmp2/src-1.5.4_ALPHA/src/sys/arch/i386/compile/SILENCE i386
Architecture: i386
Machine: i386
>Description:
	Installed packages for mimedefang:
		sendmail-8.12.10
		libmilter-8.12.10
		p5-Digest-HMAC-1.01
		p5-Digest-MD5-2.27
		p5-Digest-SHA1-2.04
		p5-HTML-Parser-3.31
		p5-HTML-Tagset-3.03
		p5-IO-Socket-SSL-0.95
		p5-IO-stringy-2.108
		p5-MIME-Base64-2.20
		p5-MIME-tools-5.411.1
		p5-MailTools-1.59
		p5-Net-DNS-0.40
		p5-Net-SSLeay-1.25
		perl-5.6.1nb9
		pth-2.0.0
		spamassassin-2.60

	After installation of mail/mimedefang I can start both mimedefang
	daemons (mimedefang-multiplexor and mimedefang) and sendmail. As
	soon as I connect to port 25 (eg with telnet) the process
	"mimedefang" aborts.

	This happens for me both on NetBSD 1.5.3 and 1.6.

	A different milter package (mail/spamass-milter) doesn't show
	this behaviour so I suppose the installation of
	sendmail/libmilter is all right.

	sendmail.mc:

  include(`../m4/cf.m4')
  VERSIONID(`@(#)netbsd-proto.mc  $Revision: 1.9.2.1 $')
  OSTYPE(bsd4.4)dnl
  FEATURE(genericstable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`genericstable')
  FEATURE(mailertable,  DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`mailertable')
  FEATURE(virtusertable,DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`virtusertable')
  FEATURE(domaintable,  DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`domaintable')
  dnl FEATURE(access_db,    DATABASE_MAP_TYPE` -o 'MAIL_SETTINGS_DIR`access')
  FEATURE(`redirect')
  MAILER(local)dnl
  MAILER(smtp)dnl

  # Enable IPv6.  IPv6 is marked as optional so the configuration file
  # can be used on IPV4-only kernel as well.
  DAEMON_OPTIONS(`Family=inet, address=0.0.0.0, Name=MTA')dnl
  DAEMON_OPTIONS(`Family=inet6, address=::, Name=MTA6, Modifiers=O')dnl
  #
  # local modification for defangmime
  dnl INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock,F=, T=C:15m;S:4m;R:4m;E:10m')
  INPUT_MAIL_FILTER(`mimedefang',`S=local:/var/spool/MIMEDefang/mimedefang.sock,F=T, T=S:360s;R:360s;E:15m')
  dnl


	Content of /var/log/maillog:

Oct 28 23:00:08 whitebox mimedefang[4620]: Multiplexor alive - entering main loo
p
Oct 28 23:00:23 whitebox sendmail[4622]: h9SM0Nub004622: Milter (mimedefang): wr
ite(O) returned -1, expected 5: Broken pipe 
Oct 28 23:00:23 whitebox sendmail[4622]: h9SM0Nub004622: Milter (mimedefang): to
 error state
Oct 28 23:00:23 whitebox sendmail[4622]: h9SM0Nub004622: Milter (mimedefang): in
it failed to open
Oct 28 23:00:23 whitebox sendmail[4622]: h9SM0Nub004622: Milter (mimedefang): to
 error state
Oct 28 23:00:23 whitebox sendmail[4622]: h9SM0Nub004622: Milter: initialization
failed, temp failing commands


	ktruss reports:

  4604 mimedefang select(0x5, 0x8071de8, 0x8071d68, 0x8071ce8, 0x8071490) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8071cd8, 0) = 0
  4604 mimedefang __sigaction14(SIGHUP, 0x80716c0, 0) = 0
  4604 mimedefang __sigaction14(SIGINT, 0x80716d8, 0) = 0
  4604 mimedefang __sigaction14(SIGTERM, 0x8071810, 0) = 0
  4604 mimedefang gettimeofday(0x8061148, 0)       = 0
  4604 mimedefang __sigprocmask14(0, 0, 0x8061088) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8061188, 0) = 0
  4604 mimedefang select(0x5, 0xbfbfd40c, 0, 0xbfbfd30c, 0xbfbfd2fc) = 0
  4604 mimedefang gettimeofday(0xbfbfd2a4, 0)      = 0
  4604 mimedefang __sigprocmask14(0, 0, 0x8061188) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8061088, 0) = 0
  4604 mimedefang gettimeofday(0x8071eb8, 0)       = 0
  4604 mimedefang __sigpending14(0x4807cdc8)       = 0
  4604 mimedefang read(0x4, 0x8071628, 0x80)       Err#57 ENOTCONN
  4604 mimedefang __sigaction14(SIGHUP, 0x8071cc0, 0x80716c0) = 0
  4604 mimedefang __sigaction14(SIGINT, 0x8071cc0, 0x80716d8) = 0
  4604 mimedefang __sigaction14(SIGTERM, 0x8071cc0, 0x8071810) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x4807cdd8, 0x8071cd8) = 0

  4604 mimedefang select(0x5, 0x8071de8, 0x8071d68, 0x8071ce8, 0x8071490) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8071cd8, 0) = 0
  4604 mimedefang __sigaction14(SIGHUP, 0x80716c0, 0) = 0
  4604 mimedefang __sigaction14(SIGINT, 0x80716d8, 0) = 0
  4604 mimedefang __sigaction14(SIGTERM, 0x8071810, 0) = 0
  4604 mimedefang gettimeofday(0x8061148, 0)       = 0
  4604 mimedefang __sigprocmask14(0, 0, 0x8061088) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8061188, 0) = 0
  4604 mimedefang select(0x5, 0xbfbfd40c, 0, 0xbfbfd30c, 0xbfbfd2fc) = 0
  4604 mimedefang gettimeofday(0xbfbfd2a4, 0)      = 0
  4604 mimedefang __sigprocmask14(0, 0, 0x8061188) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8061088, 0) = 0
  4604 mimedefang gettimeofday(0x8071eb8, 0)       = 0
  4604 mimedefang __sigpending14(0x4807cdc8)       = 0
  4604 mimedefang read(0x4, 0x8071628, 0x80)       Err#57 ENOTCONN
  4604 mimedefang __sigaction14(SIGHUP, 0x8071cc0, 0x80716c0) = 0
  4604 mimedefang __sigaction14(SIGINT, 0x8071cc0, 0x80716d8) = 0
  4604 mimedefang __sigaction14(SIGTERM, 0x8071cc0, 0x8071810) = 0
  4604 mimedefang __sigprocmask14(0x3, 0x4807cdd8, 0x8071cd8) = 0

  4604 mimedefang select(0x5, 0x8071de8, 0x8071d68, 0x8071ce8, 0x8071490) = 1
  4604 mimedefang __sigprocmask14(0x3, 0x8071cd8, 0) = 0
  4604 mimedefang __sigaction14(SIGHUP, 0x80716c0, 0) = 0
  4604 mimedefang __sigaction14(SIGINT, 0x80716d8, 0) = 0
  4604 mimedefang __sigaction14(SIGTERM, 0x8071810, 0) = 0
  4604 mimedefang fcntl(0x2, 0x3, 0x8071e68)       = 2
  4604 mimedefang fcntl(0x2, 0x3, 0)               = 2
  4604 mimedefang fcntl(0x2, 0x4, 0x6)             = 0
  4604 mimedefang select(0x3, 0, 0x8071458, 0, 0x8071450) = 1
  4604 mimedefang write(0x2, 0x80715fc, 0x4e)      = 78
       "**Pth** SCHEDULER INTERNAL ERROR: no more thread(s) available to sche"
  4604 mimedefang fcntl(0x2, 0x3, 0)               = 6
  4604 mimedefang fcntl(0x2, 0x4, 0x2)             = 0
  4604 mimedefang __sigprocmask14(0x3, 0x8071e58, 0) = 0
  4604 mimedefang getpid                           = 4604
SIGABRT SIG_DFL


>How-To-Repeat:
	- On NetBSD/i386 1.5.3 or 1.6
	  install devel/pth-2.0.0
		mail/sendmail-8.12.10
		mail/libmilter-8.12.10
		mail/mimedefang-2.35
	- start mimedefang (use WRKSRC/examples/init-script provided in the
	  source archive)
	- start sendmail
	- "$ telnet localhost 25"
	- see the mimedefang process fail

>Fix:
	none
>Release-Note:
>Audit-Trail:
>Unformatted: