Jo,

> > No, you will have to upgrade the Petr Rehor's milter helper
> > to 1.1.3. It is promised to be out in few days. This upgrade is
> > needed anyway to make it work again under FreeBSD and OpenBSD,
> > so it was not worth providing special compatibility measures.
>
> Eh?  This isn't mentioned in the release notes.

You mean the *BSD issue? It has nothing to do with amavisd-new,
it is (was?) strictly a amavisd-milter issue.

> Also, amavisd 1.4.3 is running just fine under FreeBSD with the 1.1.2
> milter right now.  It's only that the headers aren't being added.
> What is it that is believed not to work with FreeBSD?

The last time I checked, it was crashing on FreeBSD because
MAXAMABUF was increased in some version upgrade and is now
exceeding per-thread stack size. It may have been fixed in ports
by now, don't know. Petr said the fix was commited in CVS some time
ago, but there was not yet a new release since then. I didn't
investigate, so my information may be out of date by now.

Below is a part of discussion on the issue:

========
I came across this same problem as reported by Joe Tylczak:
>  k4OGnG0I026718: HEADER: To: [EMAIL PROTECTED]
>  k4OGnG0I026718: HEADER: Subject: test 3
>  k4OGnG0I026718: END OF HEADERS
>  k4OGnG0I026718: body chunk: 5
>  Program received signal SIGSEGV, Segmentation fault.
>  mlfi_eom (ctx=0x0) at mlfi.c:647
>  647         struct      mlfiCtx *mlfi = MLFICTX(ctx);
although in my case it was on FreeBSD 5.4.
Reducing MAXAMABUF to 48k just shifts the problem elsewhere,
20k seems low enough to get it running.

The cause seems to be the same, namely the thread stack size
defaults to 64kB, unless overridden by an explicit call
to pthread_attr_setstacksize. There are no global settings
and ulimit -s has no effect on thread stack size (unlike on Linux).

So the increase of MAXAMABUF to 64k (used to allocate two
such buffers) is a direct reason why amavisd-milter crashes
on FreeBSD 5.4 and on OpenBSD 3.8. Apparently NetBSD and
FreeBSD 6.x use larger default values for thread stack size.

The solution seems awkward, as thread initialization is under
control of milter library. Seems a solution like the one
used for milter-greylist is needed, or give up a need
for such large buffers allocated on a stack (allocating them
via malloc on a heap would probably be another solution).

See:
  http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2004-May/033728.html
  http://mail.zope.org/pipermail/zope/2002-October/124478.html

Mark



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
AMaViS-user mailing list
AMaViS-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amavis-user
AMaViS-FAQ:http://www.amavis.org/amavis-faq.php3
AMaViS-HowTos:http://www.amavis.org/howto/

Reply via email to